理解:
凡是以字符串形式定义的数组,系统编译时会默认在后边加一个“\0”
初始化举例:
char X[5]=“a,b,c,d,e” ❌ // 位数不够,需要再大于一个数
char X[]=“a,b,c,d,e” ✔ // 一般定义时用这种方式
scanf输入方式:
char c[10];
scanf("%s",c); // 输入时要连续,不能像数组中间敲空格,因为空格也是一个字符
注意:scanf 输入函数字符时遇到空格、回车、tab键会自动结束
以下写法会把空格当作一个字符写入进去,而不会自动结束:
for(i=0;i<5;i++){
scanf("%s",&c[i)];
}
printf("&s",c);
for(i=0;c[i]!="\0";i++){
scanf("%s",&c[i)];
}
printf("&s",c);
for(i=0;i<=strlen©;i++){ // strlen()仅在有元素时,输出时可用
scanf("%s",&c[i)];
}
printf("&s",c);
举例:
// 输入:hello
//输出:hello
char a[5];
printf("输入:");
scanf("%s",a);
printf("输出:%s",a);
// 输入:h e l l o
// 输出:h e l
char a[5];
int i;
printf("输入:");
for(i=0;i<5;i++){
scanf("%c",&a[i]); // 与%c 输一个字符
}
printf("输出:%s",a);
// 输入:h e l l o r t
// 输出:hello
char a[5];
int i;
printf("输入:");
for(i=0;i<5;i++){
scanf("%s",&a[i]); // 与上一个 %c --> %s
}
printf("输出:%s",a);```
小程序:
```c
// 输入一串字符,统计字母、数字、其他字符 的个数
char a[10] = {'r', 'U', 'n', 'O', '0', 'B', '1', '2', '!'}; // 单引号
printf("%s\n",a); // %s 输出一个字符串
int i,strnums=0,nums=0,othernums=0;
for(i=0;i<10;i++){
printf("%c\n",a[i]); // %c 输出一个字符
if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z'){
strnums++;
}
else if(a[i]>='0'&&a[i]<='9'){ // 单引号
nums++;
}
else{
othernums++;
}
}
printf("\n字母%d个\n数字%d个\n其他%d个",strnums,nums,othernums);
/*
rUnO0B12!
r
U
n
O
0
B
1
2
!
字母5个
数字3个
其他2个
*/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)