//一, 字符串简介
.java中,一个字符串可以用String类型来存储
String s = “MJ”;
C语言中没有string这种类型,用字符数组来存储字符串。
字符串就是字符序列,由多个字符组成。
字符串是特殊的字符数组,尾部添加结束标志 \0
采用字符数组存放字符串,赋值时应包含结束标志 \0
//二,字符串的初始化
char a[3] = {‘m’,‘j’,’\0’}
char b[3];
b[0] = 'm';
b[1] = 'j';
b[2] = '\0';
char c[3] = "mj";//系统自动在字符串的尾部加上一个 \0
char d[] = "mj";
char e[20] = "mj";
//三,字符串的输出
1,使用 stdio.h 中两个函数来输出字符串,
分别是 printf 和 puts 函数
1,printf函数
用格式符%s表示需要输出一个字符串
char a[3] = {'m','j','\0'};
printf("%s,a");
输出结果不显示 \0
2,puts函数
char a[] = "mj";
puts(a);
puts("lmj");
puts 函数输出一个字符串后会自动换行
prus 函数一次只能输出一个字符串,
printf 函数则可以同时输出多个字符串
printf("%s - %s","mj","lmj");
//四,字符串的输入
1,stdio.h 中可以用来接收用户输入的字符串,
分别是 scanf 和 gets
1,scanf函数
char a[10];
scanf("%s",a);
scanf 函数会从a的首地址开始存放用户输入的字符,
存放完毕后,系统会自动在尾部加上一个结束标记 \0
...注意不要写成scanf("%s",&a),a已经代表了数组的地址。
2,gets函数
char a[10];
gets(a);
gets和scanf函数一样,会从a的首地址开始存放用户输入的字符,
存放完毕后,系统在末尾自动加上一个结束标志 \0
gets函数一次只能的读取一个字符串,
scanf函数可以同时读取多个字符串 ,
gets 函数可以读入包含空格,tab的字符串,直到遇到回车为止。
scanf不能用来读取空格,tab
//五,字符串数组
1,字符串数组简介
.一维字符数组中存放一个字符串
eg;char name[20] = “mj”
.存放多个字符串,如一个班所有学生名字,则需要二维字符数组
char names[15][20],可存放15个学生的姓名(假设姓名不超过2哦个字符)
2,字符串数组的初始化
char names[2][10] = {{'j','a','y','\0'},{'j','i','m','\0'}};
char names2[2][10] = {{"jay"},{"jim"}} ;
char names3[20][10] = {"jay","jim"};
把字符串数组看作是一维数组,它的元素是字符串。
字符串数组names由字符串"jay"和字符串"jim"构成。