C的字符串操作

180it 2020-02-06 PM 2528℃ 0条

1.分割字符串:strtok()

2.合并字符串:strcat()

3.复制字符串:strcpy()

4.查找字符串:strstr()

5.查找字符串中指定字符:strchr()

1.分割字符串:strtok()

函数原型: char strtok(char s,char *delims)

参数:

  1. s:表示字符指针,此指针应当指向一串字符串。或者 s 可以等于 NULL,s = NULL则表示用于保存字符串位置的指针SAVE_PRT在下一次调用中将作为起始位置

2.delims:表示分隔符

返回值:当字符串s查找到末尾时,返回NULL。若找不到delims,则返回被分割出的子字符串

如:

include <stdio.h>

int main()
{

    char s[] = "abc def ghi";
    char *ret = NULL;
    char *delims = " ";
    ret = strtok(s,delims);        //注意:使用完strtok后,字符串s是会发生变化的,实验显示是变为第一次分割的子字符串,所以最好先保存s的值
    while(ret !=NULL)
    {
            printf("%s\n",ret);
            ret = strtok(NULL,delims);
    }
    return 0;

}
打印结果:
abc

def

ghi

2.合并字符串:strcat()

原型:char strcat(char dest, const char *src);

src字符串会合并到dest字符串里。最好dest和src都是字符型数组

返回值:返回合并后的字符串的指针。也即是dest

include <stdio.h>

int main()
{

char dest[]="abcd";
char src[] = "efgh";
strcat(dest,src);
printf("%s\n",dest);
return 0;

}
打印结果:abcdefgh

3.复制字符串:strcpy()

函数原型:char strcpy(char dest, const char *src);

作用:把src的内容复制给dest

返回指向 dest的指针。

手写 strcpy():

char a[] = "abcdef";
char b[20];

int i;
for ( i = 0;a[i] != '\0';i++)
{
    b[i] = a[i];
}
b[i] = '\0';

4.查找字符串:strstr()
原型:char * strstr(str1,str2)

str1 为被查字符串

str2为要查找的子字符串
返回值:若 str2 是 str1 的子字符串,而返回str2第一次出现的地址。若str2不是str1的子字符串,返回NULL

应用示例:

int main()
{

char a[] = "hi,hello world.hello";
char b[] = "hello";
char *c;
c = strstr(a,b);
cout << c << endl;
system("pause");
return 0;

}
打印结果:hello world.hello

5.查找字符串中指定字符:strchr()

原型:char strchr(const char s,char c)

s为要检查的字符串,c为要查找的字符

返回值:返回第一次查找到c字符的位置。若c不存在于s中,返回NULL。

应用示例:

int main()
{

char a[] = "hi,hello";
char b = 'e';
char *c;
c = strchr(a,b);
cout << c << endl;
system("pause");
return 0;

}
打印结果:ello

————————————————

原文链接:https://blog.csdn.net/u014453898/article/details/72301828

支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!

标签: none

C的字符串操作