c语言字母用什么函数,C语言常用的字符串函数整理

在C语言中字符串处理函数有很多了,在这里小编为各位整理一些常用的字符串处理函数的用法与例子,希望文章能够对各位有帮助。

函数:strcat

原型:

char * strcat(char * dest, char * src);

功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。

说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。

#include

#include

int main(int argc, char **argv)

{

char str[100] = {0};

char *str1 = "Hello", *str2 = " ", *str3 = "World!";

strcat(str, str1);

strcat(str, str2);

strcat(str, str3);

printf("%s\n", str);

return 0;

}

函数:strcpy

原型:

char * strcpy(char * dest, char * src);

功能:把src所指由NULL结束的字符串复制到dest所指的数组中。

说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。

#include

#include

int main(int argc, char **argv)

{

char dest[20];

char *src = "Hello World!";

strcpy(dest, src);

printf("%s", dest);

return 0;

}

函数:strncpy

原型:

char * strncpy(char * dest, char * src, int n);

功能:把src所指由NULL结束的字符串的前n个字节复制到dest所指的数组中。

说明:如果src的前n个字节不含NULL字符,则结果不会以NULL字符结束。如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节。src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。

#include

#include

int main(int argc, char **argv)

{

char dest[20];

char *src = "Hello World!";

strncpy(dest, src, 5);

dest[5] = '\0';

printf("%s", dest);

return 0;

}

函数:strncat

原型:

char * strncat(char * dest, char * src, int n);

功能:把src所指字符串的前n个字符添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。

说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。

#include

#include

int main(int argc, char **argv)

{

char str[20] = "Hello ";

char *str1 = "World!!!";

strncat(str, str1, 6);

printf("%s\n", str);

return 0;

}

函数:strchr

原型:

char * strchr(char * s, char c);

功能:查找字符串s中首次出现字符c的位置

说明:返回首次出现c的位置的指针,如果s中不存在c则返回NULL。

#include

#include

int main(int argc, char **argv)

{

char *str = "Hello World!";

char *p, c= 'W';

p = strchr(str, c);

if(p) {

printf("%s", p);

} else {

printf("Not Found");

}

return 0;

}

函数:strrchr

原型:

char * strrchr(char * s, char c);

功能:查找字符串s中最后出现字符c的位置

说明:返回最后出现c的位置的指针,如果s中不存在c则返回NULL。

#include

#include

int main(int argc, char **argv)

{

char *str = "Hello World!";

char *p, c= 'o';

p = strrchr(str, c);

if(p) {

printf("%s", p);

} else {

printf("Not Found");

}

return 0;

}

函数:strstr

原型:

char * strstr(char * haystack, char * needle);

功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。

说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。

#include

#include

int main(int argc, char **argv)

{

char *str = "Hello World!";

char *p, *n= "or";

p = strstr(str, n);

if(p) {

printf("%s", p);

} else {

printf("Not Found");

}

return 0;

}

函数:strcmp

原型:

int strcmp(char * s1, char * s2);

功能:比较字符串s1和s2。

说明:当s1s2时,返回值>0

#include

#include

int main(int argc, char **argv)

{

char *str1 = "Hello World!";

char *str2 = "hello world!";

printf("%d", strcmp(str1, str2));

return 0;

}

函数:strncmp

原型:

int strcmp(char * s1, char * s2, int n);

功能:比较字符串s1和s2的前n个字符。

说明:当s1s2时,返回值>0

#include

#include

int main(int argc, char **argv)

{

char *str1 = "Hello World!";

char *str2 = "Hello world!";

printf("%d", strncmp(str1, str2, 7));

return 0;

}

函数:strlen

原型:

int strlen(char * s);

功能:计算字符串s的长度。

说明:返回s的长度,不包括结束符。

#include

#include

int main(int argc, char **argv)

{

char *str = "Hello World!";

printf("%d", strlen(str));

return 0;

}

函数:strtok

原型:

char * strtok(char * s, char * delim);

功能:分解字符串为一组标记串。s为要分解的字符串,delim为分隔符字符串。

说明:首次调用时,s必须指向要分解的字符串,随后调用要把s设成NULL。strtok在s中查找包含在delim中的字符并用NULL('\0')来替换,直到找遍整个字符串。返回指向下一个标记串。当没有标记串时则返回空字符NULL。

#include

#include

int main(int argc, char **argv)

{

char s[20]= "Hello World!";

char *d = "o";

char *p;

p = strtok(s, d);

while(p) {

printf("%s\n", p);

p = strtok(NULL, d);

}

return 0;

}

函数:memset

原型:

void * memset(void * buffer, int c, int count);

功能:把buffer所指内存区域的前count个字节设置成字符c。

说明:返回指向buffer的指针。

#include

#include

int main(int argc, char **argv)

{

char s[20]= "Hello World!";

memset(s, 'o', 10);

printf("%s", s);

return 0;

}

函数:memcpy

原型:

void * memcpy(void * dest, void * src, unsigned int count);

功能:由src所指内存区域复制count个字节到dest所指内存区域。

说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。

#include

#include

int main(int argc, char **argv)

{

char *s= "Hello World!";

char d[20];

memcpy(d, s, strlen(s));

printf("%s", d);

return 0;

}

函数:memmove

原型:

void * memmove(void * dest, const void * src, unsigned int count);

功能:由src所指内存区域复制count个字节到dest所指内存区域。

说明:src和dest所指内存区域可以重叠,但复制后src内容会被更改。函数返回指向dest的指针。

#include

#include

int main(int argc, char **argv)

{

char str[20] = "Hello World!x";

memmove(str, str 6, 7);

printf("%s", str);

return 0;

}

函数:memcmp

原型:

int memcmp(void * buf1, void * buf2, unsigned int count);

功能:比较内存区域buf1和buf2的前count个字节。

说明:当buf1buf2时,返回值>0

#include

#include

int main(int argc, char **argv)

{

char *str1 = "Hello World!";

char *str2 = "Hello world!";

printf("%d", memcmp(str1, str2, strlen(str1)));

return 0;

}

函数:memchr

原型:

void * memchr(void * buf, char ch, unsigned count);

功能:从buf所指内存区域的前count个字节查找字符ch。

说明:当第一次遇到字符ch时停止查找。如果成功,返回指向字符ch的指针;否则返回NULL。

#include

#include

int main(int argc, char **argv)

{

char *str = "Hello World!";

char *p, c= 'W';

p = (char *)memchr(str, c, strlen(str));

if(p) {

printf("%s", p);

} else {

printf("Not Found");

}

return 0;

}

--EOF--

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值