Directorio de artículos
Esta parte del contenido es muy similar al lenguaje C, y es una parte C ++ de uso común, por lo que puede leerla rápidamente.
1. Bucle
1.1 para bucle
A continuación se muestra un ejemplo del uso del bucle for para acceder a una cadena. Ingrese una cadena de caracteres y luego invierta la salida.
#include<iostream>
#include<string>
using namespace std;
int main()
{
cout<<"Enter a word: ";
string word;
cin>>word;
for(int i = word.size()- 1;i >=0; i--)
{
cout<<word[i];
}
cout<<"\nBye.\n";
return 0;
}
1.2 operador de coma
El operador de coma es la prioridad más baja. El valor del operador de coma es el valor más a la derecha.
#include<iostream>
using namespace std;
int main()
{
int i = 0;
int j = 0;
i = 1,2;//等同于(i = 1),2;
j = (1,2);
cout<<i<<endl;
cout<<j<<endl;
return 0;
}
Salida:
1.3 Operadores relacionales
La precedencia de los operadores relacionales es menor que la de los operadores aritméticos.
x + 3> y-2; equivalente a (x + 3)> (y-2);
1.4 Comparación de cuerdas estilo C
El nombre de la matriz de una cadena de estilo C representa una dirección, por lo que las siguientes expresiones comparan direcciones.
char word[] = "mate";
if(word == "mate")//比较的是地址,他们不相等。
Las cadenas de estilo C usan strcmp () para comparar el tamaño. Debido a que las cadenas de estilo C se definen con un carácter nulo al final, las dos cadenas siguientes son iguales.
char big[80] = "hello";
char little[10] = "hello";
- Si str1 == str2; entonces strcmp (str1, str2) == 0;
- Si str1> str2; entonces strcmp (str1, str2)> 0;
- Si str1 <str2; entonces strcmp (str1, str2) <0;
1.5 Comparación de cadenas
Las cadenas se pueden comparar directamente
#include<iostream>
#include<string>
using namespace std;
int main()
{
string word = "?ate";
for(char ch = 'a';word != "mate";ch++)
{
cout<<word<<endl;
word[0] = ch;
}
cout<<word<<endl;
}
Salida:
2. Bucle while y do while
Estos dos bucles tienen las mismas funciones que para, por lo que no los presentaré.
2.1 typedef 和 definir
Ambos pueden tener un alias, pero definir es solo un reemplazo y, a veces, se producen resultados inesperados al definir tipos. Typedef no lo hará.
#define INT_point int*
INT_point pa,pb;//pa是指针,pb是普通整形变量。
3. Bucle for basado en rango (C ++ 11)
C ++ 11 agregó un nuevo bucle: un bucle for basado en rangos. Esto simplifica una tarea cíclica común: realizar la misma operación en cada elemento de una matriz (o clase de contenedor, como vector y matriz), por ejemplo.
#include<iostream>
using namespace std;
int main()
{
double prices[5] = {
2.3, 4.3,6.4,10.3, 5.9};
for(double p:prices)
{
cout<<p<<endl;
}
//或者直接应auto
cout<<"使用auto:"<<endl;
for(auto p:prices)
{
cout<<p<<endl;
}
}
Si necesita modificar el valor de un elemento de matriz, debe usar & p
#include<iostream>
using namespace std;
int main()
{
double prices[5] = {
2.3, 4.3,6.4,10.3, 5.9};
for(auto &p:prices)
{
p = p * 2;
}
for(double p:prices)
{
cout<<p<<endl;
}
}
4. Entrada de texto y bucle
4.1 Entrada cin original
Este tipo de entrada no leerá espacios, tabulaciones ni nuevas líneas. El siguiente ejemplo no terminará hasta que se lea '#'.
#include <iostream>
using namespace std;
int main()
{
char ch;
int count = 0;
cout<<"Enter characters;enter # quit:\n";
cin>>ch;
while(ch != '#')
{
cout<<ch;
++count;
cin>>ch;
}
cout<<endl<<count<<" characters read\n";
return 0;
}
Salida
Enter characters;enter # quit:
da jia hao !###ldjkfa
dajiahao!
9 characters read
4.2 cin.get (char) que puede leer espacios
Si necesita leer caracteres como espacios, puede usar cin.get (char). Modifique el programa de muestra de la siguiente manera:
#include <iostream>
using namespace std;
int main()
{
char ch;
int count = 0;
cout<<"Enter characters;enter # quit:\n";
cin.get(ch);
while(ch != '#')
{
cout<<ch;
++count;
cin.get(ch);
}
cout<<endl<<count<<" characters read\n";
return 0;
}
Salida
Enter characters;enter # quit:
da jia hao !###lll
da jia hao !
12 characters read
5. Operadores lógicos
Operadores lógicos && || Su prioridad es menor que los operadores relacionales, pero! Es mayor que todos los operadores relacionales y operadores aritméticos. y entonces:
x >5 && x < 10;
//等同于
(x > 5 && (x < 10))
Si es fácil de confundir, ¡simplemente use ()!
Los operadores lógicos también se pueden representar mediante y, o, y no en el programa , y no se requieren archivos de encabezado en C ++. En lenguaje C, debe incluir el archivo de encabezado iso646.h.
6. Biblioteca de funciones de caracteres cctype
C ++ hereda un paquete de funciones muy conveniente relacionado con los caracteres del lenguaje C, y su archivo de encabezado está en cctype (ctype.h en el estilo antiguo).
7. declaración de cambio
El juicio de switch solo puede manejar números enteros, caracteres o enumeraciones. Utilice la enumeración como ejemplo:
#include<iostream>
using namespace std;
int main()
{
enum {
red, orange, yellow, green, blue, violet,indigo};
cout <<"Enter color code (0 - 6): ";
int code;
cin >> code;
while(code >= red && code <= indigo)
{
switch(code)
{
case red : cout<<"red\n";break;
case orange : cout<<"orange\n";break;
case yellow : cout<<"yellow\n";break;
case green : cout<<"green\n";break;
case blue : cout<<"blue\n";break;
case violet : cout<<"violet\n";break;
case indigo : cout<<"indigo\n";break;
}
cout <<"Enter color code (0 - 6): ";
cin >>code;
}
cout << "Bye\n";
return 0;
}
¡Estudiemos juntos cuando la entrada y la salida están en el Capítulo 17!
Resumen Índice
Anterior: (3) Tipo de compuesto
Siguiente: (5) Uso de funciones
Referencia del artículo: "C ++ Primer Plus Sixth Edition"