在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--