1.字符串的概念
在C语言中,没有字符串类型,自然不能使用字符串变量,但可以使用字符串常量。
字符串是指若干有效字符的序列,其表示方法是用双引号将字符序列括起来,如“string”。
字符串可以包括转义字符及ASCII码表中的字符。
2.字符串的存储
在对字符串进行处理时,字符串存放在字符数组中,例如:
static char s[14];
C语言规定字符‘ ’作为字符串结束的标志。
例如:char s[14]={"How are you?"};
s的长度为14实际字符只有12个,和一个‘ ’
数组命名可以省略花括号:例如 char s[8]="program";但不能是:s=“program”;
3.字符串的输入与输出
<1>使用printf()输出字符串:用%s,%c来控制输出,%s整个输出,%C则一一用循环输出;
<2>使用puts()输出:puts(str);会自动换行;
<3>字符串输出:scanf():格式:scanf("%s",s);不用再加&,因为s即代表该字符数组的起始地址。输入字符最后以回车符或空格为止,所以无法输入空格。
<4>使用gets()输入字符串:gets(s);以回车为结束,可以读入空格;
scanf()一次可以输入多个字符串,如:scanf("s%s%",s1,s2);gets()一次只能输入一个
4.字符串处理函数
这些函数放在sting.h中;
<1>字符串复制函数strcpy().
格式调用:
strcpy(str1,str2);
函数功能:将字符串str2复制到字符串数组str1中,str2的值不变。
由于数组不能进行整体复制,所以不能直接使用赋值语句来实现赋值,下列是非法的:
str1=str2;str=“program”;
<2>字符串连接函数strcat().
调用格式:
strcat(str1,str2);
函数功能:将str2连同‘ ’连接到str1的最后一个非‘ ’字符后面。连接后的新字符串存到str1中。
<3>字符串比较函数strcmp();
调用格式:
strcmp(str1,str2);
函数功能:若str1=str2,则函数返回值为0;若str1>str2,则函数返回值为正整数;若str1<str2,则函数返回值为负整数;
注:字符串比较不是比较长短,而是比较ASCII码值的大小。从左到右比较,直到遇到不同值,以首个不同大者为大。并返回两者之差。
比较两个字符串是否相等用:if(strcmp(str1,str2)==0){};而不能是if(str1==str2)
<4>字符串长度行数strlen().
调用格式:strlen(string);
<5>在stdlib.h中,还有atoi,将字符串转化为整数、长整数,double。