String

C语言并不支持字符串数据类型,允许作为字符数组来表示字符串。

char string_name[size];

不能把初始化从声明中分隔开来。语句 char str[5]; str = "GOOD";是不允许的。

同时,语句

char s1[4] = "abc";

char s2[4];

s2 = s1;  /*错误*/

也是不允许的。数组名不能用作赋值运算符的左操作数。

 

使用scanf函数从终端读取字符串

char address[10];

scanf("%s", address);

scanf函数的问题是,一量遇到空白符(包括空格、制表符、回车符、样式缩进和换行符),就终止输入。

在字符数组中,变量名的前面不需要加&符号。

 

gets函数

位于头文件<stdio.h>之中,与scanf不同,它不会省略到空格。

puts函数显示字符串变量的值,并将光标移到屏幕的下一行开始处。

 

字符串处理函数

strcat(string1, string2); // 串联两个字符串

strcmp(string1, string2); // 比较两个字符串

strcpy(string1, string2); // 将一个字符串复制给另一个字符串

strlen(string);     // 给出字符串的长度

 

strncpy(s1, s2, 5);

该语句将源字符串s2中前5个字符复制到目标字符串s1中。由于前5(从0开始计)个字符可能不包括终止空字符,因此必须显示地在s1的第6个位置放置一个空字符:

s1[6] = '\0';

类似的有strncmp(s1, s2, n);它把s1和s2最左边的n个字符进行比较

strncat(s1, s2, n);它把s2最左边的n个字符串联到s1的末尾

 

strstr(s1, s2);函数strstr查找字符串s1,看看字符串s2是否包含在s1之中。如果是,该函数返回子字符串首次出现的位置。否则,返回空指针。

strchr(s1, 'm');首次出现

strrchr(s1, 'm');最后出现

posted @ 2010-09-20 11:41  露初晞  Views(223)  Comments(0)    收藏  举报