C/C++ string
How to store the name of 49 students
#define Num_Of_Stu 49
#define sizeString 100
char name[Num_Of_Stu][sizeString]
Character array and C string
Character array --字符数组
每个元素都是字符类型的数组
char string[80];
C string --C字符串
一串以‘\0’结尾的字符在C/C++中被看作字符串
char name[10] = “zhaowei”;
用双引号括起的一串字符是字符串常量,C语言自动为其添加'\0'终结符
C语言并没有为字符串提供任何专门的表示法,完全使用字符数组和字符指针来处理之
Character array initialization
用字符型数据对数组进行初始化
char str[6] = {'C','h','i','n','a','\0'};
用字符串常量直接对数组初始化
char str[6] = {"China"};
char str[6] = "China";
I/O: 二维整型数组
通常,数组的输入和输出只能逐个对数组元素进行操作
#define ROW_SIZE 10
#define COL_SIZE 100
int arr [ROW_SIZE][COL_SIZE];
输入方法:
输入第i行第j列元素:
scanf(“%d”,&arr[i][j]);
输入整个数组元素:
for (i=0;i<ROW_SIZE;i++)
for(j=0;j<COL_SIZE;j++)
scanf(“%d”,&arr[i][j]);
输出方法:
输出第i行第j列元素:
printf(“%d”,arr[i][j]);
输出整个数组元素:
for (i=0;i<ROW_SIZE;i++)
for(j=0;j<COL_SIZE;j++)
printf(“%d”,arr[i][j]);
I/O: 二维字符数组
字符数组则有专门的处理函数支持
#define ROW_SIZE 10
#define COL_SIZE 100
char str[ROW_SIZE][COL_SIZE];
输入方法:
输入第i行第j列元素:
scanf(“%c”,&str[i][j]);
输入整个数组元素:
for (i=0;i<ROW_SIZE;i++)
gets(str[i]);
输出方法:
输出第i行第j列元素:
printf(“%c”,str[i][j]);
输出整个数组元素:
for (i=0;i<ROW_SIZE;i++)
puts(str[i]);
逐个输入输出for(i=0;str[i]!='\0';i++){ putchar(str[i]);}putchar('\n');//////////////str[i]= getchar();
char str[10];
1-dimention char array input/output
一次性输入输出
scanf("%s",str);
printf("%s",str);
////////////////
gets(str);
puts(str);
C string input/output _ scanf( )
char str[10];scanf("%s", str);
scanf不能读入带空格的字符串
属不安全输入
当用户的输入多于10个(含10个), str数组将越界
被公认为最易遭到黑客攻击的函数之一
C string input/output _ gets( )
char str[10];
gets(s);
字符串输入函数gets()
能读入带空格的字符串
同scanf一样,gets()没有提供限制输入字符串长度的方法,容易引起缓冲区溢出,给黑客攻击以可乘之机
对输入字符串长度有限制的函数是
fgets(buf, sizeof (buf), stdin); //size of buf
C++ string input / output
char name[11];
cin>> name; //?
cout<< name;
char name[11];
(name,10,‘\n’); //with length
monitoring
cout>> name;
/*(包括空白字
符),直到读满N-1个,或者直到遇到指定的结束符为止(默认为\n) */
C字符串处理函数
在<s
Array and String 来自淘豆网m.daumloan.com转载请标明出处.