Linux C的字符串操作(未完)

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 

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 

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


你可能感兴趣的:(#,linux,C)