库函数
字符串函数
本文介绍了strcat、strncat、strchr、strcmp函数。
strcat
本函数的语法结构为:
char * strcat(char *str1 , char *str2);
其功能是将字符串str2接到str1之后,str1之后的‘\0’被取消掉。
返回指向str1的指针。
程序示例:
char a[10] = "hallo" ;
char b[10] = "wrold" ;
strcat(a, b);
cout << a << endl;
运行以上程序,运行结果如下:
本版本的VS会认为本函数不安全,会输出一个错误(C4996)。从而得不到结果。解决方式是将代码
#pragma warning (disable:4996)
粘贴在程序开始,从而使程序正常运行。对于本函数的功能的更加安全的替代者是 strncat。它也包含在<string.h>文件中。
strncat
本函数的语法结构为:
char * strncat(char *str1 , char *str2,int n);
本函数的功能是把str2所指的字符串前n个字符连接在str1之后。当然,str1所指的字符串必须有足够的空间来容纳n个字符。
程序示例:
char a[10] = "hallo" ;
char b[10] = "wrold" ;
strncat(a, b, 3);
如图所示,程序将3个字符连接在str1之后。
strchr
本函数的语法结构为:
char * strchr(char *str1,char ch);
它的功能是找到字符串str1中第一次出现字符ch的位置,找到的话返回指向该字符的指针,否则的话返回空指针。
程序示例:
char str1[20] = { "hallo" };
char *out = NULL;
out = strchr(str1, 'a');
if (NULL == out )
{
cout << "can't find !" << endl;
}
else
{
cout << out -str1 << endl;
}
程序运行结果如下图所示。
如图所示,字符a是字符串str1的第2个字符,即str1[1]。
strcmp
本函数的语法结构为:
char * strcmp(char *str1,char *str2);
它的功能是比较字符串str1和str2。如果str1<str2,则输出-1。如果str1=str2,则输出0。如果str1>str2,则输出1。
在这里,依次顺序比较字符的ASCII码值。直至较短字符串结尾。
程序示例:
char *str1 = "hallo ";
char *str2 = "halle";
char *str3 = "hall";
cout << "strcmp(hallo, halle) "<< strcmp(str1, str2) << endl;
cout << "strcmp(hallo, hall) " << strcmp(str1, str3) << endl;
注意
本文使用的操作系统是Windows 7 64位处理器。
使用的软件是Microsoft visual studio 2015
在使用字符函数的时候,应该在源文件中添加以下命令
#include <string.h>