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');最后出现

浙公网安备 33010602011771号