一聚教程网:一个值得你收藏的教程网站

热门教程

C语言常用的字符串函数整理

时间:2022-06-25 04:47:51 编辑:袖梨 来源:一聚教程网


函数:strcat
原型:

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

功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'')并添加''。
说明: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("%sn", 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] = '';
    printf("%s", dest);
    return 0;
}

函数:strncat
原型:


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

功能:把src所指字符串的前n个字符添加到dest结尾处(覆盖dest结尾处的'')并添加''。
说明: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("%sn", 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('')来替换,直到找遍整个字符串。返回指向下一个标记串。当没有标记串时则返回空字符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("%sn", 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--

热门栏目