C语语言言中中“不不受受限限制制”的的字字符符串串函函数数总总结结
“不不受受限限制制的的“字字符符串串函函数数
按 《C和指针》中所说,那些常用的字符串函数都是“不是限制的”,就是说 们只能通过寻找字符串末尾的NULL来判断字符串的
长度。
strlen
strlen函数用于求解字符串长度,其返回类型为unsigned int (即size_t )。strlen函数从起点开始,往后计数,遇到‘\0'停止。
值得注意的是:strlen函数的返回类型。看如下代码:
#include
#include
using namespace std;
int main()
{
if ((strlen("abc") - strlen("abcdef")) > 0)
cout << "大于" << endl;
else
cout << "小于" << endl;
return 0;
}
输出 : 大于。不必惊奇,函数的size_t (-3 )是一个正数。
strcpy
strcpy 函数是字符串拷贝函数
函数原型为:
需要注意:目标字符串是要可以更改的,空间要大,足够存放拷贝的源字符串。
拷贝过程中,函数将源字符串的‘\0'一起拷贝到目标中。
#include
#include
using namespace std;
int main()
{
char arr 20] = "abcdefgh******";
char* p = "hello world";
strcpy(arr, p);
cout << arr << endl;
return 0;
}
strcmp
strcmp函数为字符串比较函数。比较的不是字符串的长度,而是对应字符的A SC 值。
返回类型为:
#include
#include
using namespace std;
int main()
{
char arr ] = "abcde";
char p ] = "abde";
cout << strcmp(arr,p) << endl;
return 0;
}
strcat
strcat函数为字符串追加函数。函数原型:
将源字符串追加到目标字符串上。
int main()
{
char arr 20] = "abcde ";
char p ] = "hello";
cout << strcat(arr, p) << endl;
return 0;
}
strstr
strstr为字符串查找函数。函数原型为:
在目标字符串中查找子字符串,找的则返回指向子字符串的指针,否则返回空指针。
int main()
{
char arr ] = "hello, how are you ?";
char p ] = "are";
cout << strstr(arr, p) << endl;
return 0;
}
结果为:are you ?
strtok
strtok函数为字符串分隔函数。函数原型为:
strDelimit为字符串,定义了分隔字符的集合。函数执行是遇到分割字符时,将 改为‘\0',范围一个指向这个标记的指针。注意
:strtok函数执行时修改了字符串的内容。
int main()
{
char str ] = "hello,how are you ?