可以用scanf()接受字符串,它不接收空格
char str[100]="Good morning";
scanf("%s",str);
str中的内容是Good
char str[100]="Good morning";
scanf("%3s",str);
str中的内容是Goo
char str[100]="Good morning";
scanf("%5s",str);
str中的内容是Good.
用scanf()输入字符串时,数组名前不加&
输入字符串函数gets(),它可以接收空格,以回车结束输入
例如:char str[100]=" ";
gets(str);
puts(str);
输入字符函数getchar()和getch()
getchar()输入回显
getch()不回显,而且可以接收'\r',常用于输入密码操作,需要#include<conio.h>
可以用print'f()输出字符串,找'\0'结束,否则一直输出。
char str[100]="ABC";
printf(“%s",str); //输出ABC
char str[100]="ABC";
str[1]='\0';
printf("%s",str); //输出A
char str[4]="ABC";
str[3]='D';
printf("%s",str); //错误,没有\0
其他输出函数:
输出字符串函数puts()
例如:char str[100]="ABC";
puts(str);
输出字符函数putchar();
例如:char str[100]="ABC";
putchar(str[0]);
putchar('\n');
内存赋值函数:memset()
memset用法有:
memset(szName,'\0',100);//表示把数组szName前100位的元素清0
memset(szName,'A',5);//表示把数组前5位的元素都替换成A;
memset(szName+5,'A',5);//表示从数组下标为5的元素开始往后5个元素都替换成A
字符串拷贝stcpy()
格式为strcpy(字符数组1,字符数组2);
strcpy(字符数组名,字符常量);
例如:char str[]="1234";
char szName[100]="";
strcpy(szName,str);
strcpy(szName,"1234");
char szName[100]="";
strcpy(szName,"12345");
strcpy(szName,"Li");
puts(szName);//结果是Li, \0也拷贝过去。
strncpy()
strncpy有如下用法:
//表示把数组下标为x的元素开始往后按顺序替换成A,B,C
strncpy(szTemp+x,"ABC");
//只复制“1235”的前两个字符给str字符串
strncpy(str,"12345",2);
//把strB的下表为y之后的z个字符,复制给strA以下表为x的字符后面去,(包括xy的元素)
strncpy(strA+x,strB+y,z);
注意:strcpy不检查目标字符串的大小,当目标字符串内存不足,会导致崩溃。
字符串比较strcmp
格式:strcmp(字符串1,字符串2);
比较相同位置上的ASCII码值的大小(常用于比较字符串是否相等)
两个字符串相等返回0,字符串1大于字符串2返回正数,否则返回负数。
可以有如下使用方法:
strcmp(s1,s2);
strcmp(s,"123");
strcmp("123",s);
字符串拼接strcat
格式:strcat(字符数组1,字符数组2);
功能:吧字符数组2中的字符串连接到字符数组1中字符串的后面,并删去字符串1后的串标志"\0" 本函数返回值是字符数组1的首地址。
字符串转换函数:
atof,,atoi ,atol
字符串测试函数:
isalum,isalpha