字符数组初始化及传递
字符数组的初始化 (1)对每个字符单独赋值进行初始化。例如, c[0]='I';c[1]='';c[2]='a';c[3]='m';c[4]='';c[5]='h';c[6]='a';c[7]='p';c[8]='p';c[9]='y'; (2)对整个数组进行初始化。例如, char c[10]={'I','a','m','h','a','p','p','y'}
#include <stdio.h>
void print(char a[]);
void char_array();
int main()
{
char_array();
return 0;
}
void char_array()
{
char c[5] = {'h', 'e', 'l', 'l', 'o'};
char c[5] = {'h', 'e', 'l', 'l', '\0'};
char d[5] = "how";
// 输出字符串乱码时,要去查看字符数组中是否存储了结束符'\0'
printf("%s\n", c); // 因为字符数组 c 没有保存放置结束符'\0' 所以会乱码
printf("%s\n", d);
print(d);
}
void print(char a[])
{
int i = 0;
while (a[i])
{
printf("%c", a[i]);
i++;
}
printf("\n");
}
scanf 读取字符
scanf在使用%s 读取字符串时,会忽略空格和回车(这一点与%d 和%f 类似)
#include <stdio.h>
void scanf_string();
int main()
{
scanf_string();
return 0;
}
void scanf_string()
{
char a[10];
char b[10];
// 字符数组名a中存储了数组的起始地址,因此不需要取地址
// scanf 读取字符串时使用%s
scanf("%s", a);
printf("%s\n", a);
// scanf 在使用 %s 读取字符串时,会忽略空格和回车(这一点与%d 和%f 类似)
scanf("%s%s", a, b);
printf("a=%s,b=%s\n", a, b);
}
标签:char,记录,scanf,字符,C语言,学习,数组,printf,void
From: https://blog.51cto.com/u_15527112/8326284