本篇介绍c语言的string.h中常用的strlen、strcmp、strcpy、strcat、strtok、strstr函数用法。
更多资料请点击:我的目录
size_t strlen(const char *s);
用于计算字符串长度,*s为指向字符数组的值,所以括号内只需要填入数组名即可。
#include
#include
int main()
{
char str1[120], str2[120];
printf("请输入第一个字符串:");
scanf("%s",str1);
printf("str1 == %ld\n",strlen( str1 ));
printf("\n请输入第二个字符串:");
scanf("%s",str2);
printf("str2 == %ld\n",strlen( str2 ));
return 0;
}
int strcmp(const char *s1, const char *s2);
比较字符数组str1与str2的大小,返回值为整型数值,(str1 = = str2)返回值为0,(str1 != str2)返回值就不为0。
#include
#include
int main()
{
char str1[10] = "mmmm";
char str2[10] = "mmmm";
printf("str1 == %s\n", str1 );
printf("str2 == %s\n", str2 );
printf("%d\n",strcmp(str1 ,str2));
return 0;
}
char *strcpy(char *dest, const char *src);
char *strncpy(char *dest, const char *src, size_t n);
dest为目标字符数组,src为源字符数组,n为前n位(长度)
将一个字符数组str2[]内容复制到另外一个字符数组str1[]中,如果另一个字符数组str1不为空,即先清空石str1内容,再进行复制。
str1为空时:
#include
#include
int main()
{
int n;
char str1[120],str2[]="i am jiajia";
strcpy(str1,str2);
//strncpy(str1, str2, n); //n为位数设定,将str2的前n位复制到str1中
printf("%s\n",str1);
printf("%s\n",str2);
return 0;
}
#include
#include
int main()
{
char str1[120], str2[120];
scanf("%s",str1);
scanf("%s",str2);
strcpy(str1, str2);
printf("str == %s\n",str1);
return 0;
}
输入给str1[]的“jaijia”,在最后输出时并没有出现:
char *strcat(char *dest, const char *src);
char *strncat(char *dest, const char *src, size_t n);
将源字符串src,拼接到dest目标字符串之后,n设置长度。
#include
#include
int main()
{
char str1[10] ;
char str2[10] ;
printf("请输入第一个字符串:");
scanf("%s",str1);
printf("请输入第二个字符串:");
scanf("%s",str2);
printf("拼接后字符串:%s\n",strcat(str1 ,str2));
// printf("拼接后字符串:%s\n",strncat(str1 ,str2,5));
return 0;
}
char *strtok(char *str, const char *delim);
根据 分隔标志delim 对 源字符串str 进行分隔。
#include
#include
int main()
{
char str1[100] ;
printf("请输入一个字符串:");
scanf("%s",str1);
printf("字符串第一次分割: %s\n", strtok ( str1, "d"));
printf("字符串第二次分割: %s\n", strtok ( NULL, "h"));
printf("字符串第三次分割: %s\n", strtok ( NULL, "l"));
//如果分隔完毕,再次进行分隔,strtok函数会返回 NULL
return 0;
}
char *strstr(const char *haystack, const char *needle);
在 源字符串haystack 中定位 被查找字符串needle ,有对应的字符串就返回该字符串的地址,没有找到就返回NULL。
#include
#include
int main()
{
char str1[100] ;
printf("请输入一个字符串:");
scanf("%s",str1);
if(strstr(str1, "jiajiage") != NULL )
{
printf("%s\n",strstr(str1, "jiajiage")) ;
}
else //(strstr(str1, "jiajiage") == NULL
{
printf("Not Found!\n");
}
return 0;
}
更多资料请点击:我的目录