预计阅读本页时间:-
C库提供了许多处理字符串的函数;ANSI C用头文件string. h给出这些函数的原型。下面是一些最有用和最常用的函数:strlen() 、strcat() 、strncat() 、strcmp() 、strncmp() 、strcpy() ,和strncpy() 。此外我们也将研究一下头文件stdio. h支持的sprintf()函数。要查看string. h中的函数系列的完整列表,请参见参考资料5“添加了cqq的标准ANSI C库”部分。
11.5.1 strlen()函数
我们已经知道,用strlen()函数可以得到字符串的长度。下面的函数中用到了strlen()函数,这是一个可以缩短字符串长度的函数:
广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元
这个函数确实要改变字符串,因此在函数头中声明形式参量string时没有使用const修饰符。
在程序清单11.13的程序中测试一下fit()函数。注意,代码中用到了C的字符串文本串联功能。
程序清单11.13 test.c程序
输出如下:
fit()函数在数组的第8个元素中放置了一个‘\0’字符来代替原有的空格字符。puts()函数输出时停在第一个空字符处,忽略数组的其他元素。然而,数组的其他元素仍然存在,如下面的函数调用的输出结果所示:
表达式mesg+8是mesg[8]即't'字符的地址。因此puts()显示这个字符并且继续输出直到遇到原字符串中的空字符。图11. 4(一个短字符串)给出了程序的执行过程(这句话是从人们对艾伯特爱因斯坦的评价中变化而来,但是,这句话看上去更像是他的哲学思想的代表,而不仅仅是引用)。[1]
ANSI的string. h文件中包含了C字符串函数系列的原型,因此这个示例程序要包含这个文件。
图11.4 puts()和空字符