关于字符数组
字符数组的输入输出
1)getchar()和 putchar() / printf() 和 scanf()
getchar() 和 putchar() / printf() 和 scanf() 的 %c ,要结合 循环,只能单个字符输入输出!!
2)printf() 和 scanf()
printf() 和 scanf() 的 %s ←(操作数是地址),空格后的字符不输出
Eg:
#include<stdio.h>
int main()
{
char str[10];
printf("输入字符串:\n");
scanf("%s",str);
printf("输出结果:\n%s\n",str);
return 0;
}
运行结果演示👇
3)gets(字符数组名) 和 puts(字符数组名)
gets(字符数组名) 和 puts(字符数组名):
以 ‘\0’ * 作为结束的标志 (遇到换行字符,换行字符本身不会被接收,而是被转换成’\0’作为结束的标志),可以含有空格!!
Eg:
#include<stdio.h>
int main()
{
char str[10];
printf("输入字符串:\n");
gets(str);
printf("输出:\n");
puts(str);
return 0;
}
运行结果演示👇
字符串函数
(下面的几个函数在 string.h 中)
1.字符串的连接函数:strcat(A,B);
功能:将数组B的字符串连接到数组A的后面,并删除A后的"\0",调用后得到的是A的地址。
2.字符串的拷贝函数:strcpy{A,B};
功能:将数组B的字符串拷贝到数组A中,相当于将数组B赋值给A,调用后得到的是A的地址。
3.字符串的比较函数:strcmp(A,B);
功能:按ASCII码值比较从左到右直到遇到不同的字符或者 ‘\0’ 为止。
A=B , 返回值:=0;
A>B , 返回值:>0;
A<B , 返回值:<0;
Eg:
#include<string.h>
#include<stdio.h>
int main()
{
char a[10]="a";
char b[10]="b";
char c[10]="a";
printf("strcmp()函数:\n");
printf("a和b比较:%d\n",strcmp(a,b));
printf("b和a比较:%d\n",strcmp(b,a));
printf("a和a比较:%d\n",strcmp(a,c));
return 0;
}
运行结果演示👇
4.测字符串的实际长度:strlen(A);
功能:测量字符串的实际长度(空格也算,不含结束标识符’\0’)