C语言的字符串操作函数小结

一.strcat()函数

  char *strcat(char *dest, const char *src) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。它返回一个指向字符串dest首地址的指针。它的声明如下:

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

实例如下:

#include <stdio.h>
#include <string.h>

int main()
{
    char dest[50]="Who are you?", src[50]="I am Jack";
    strcat(dest, src);

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

    return(0);
}

输出:

Who are you?I am Jack

  升级的函数 char *strncat(char *dest, const char *src, size_t n) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾,直到 n 字符长度为止。其余和strcat()函数一样。

二.strchr()函数

  char *strchr(const char *str, int c) 在参数 str 所指向的字符串中搜索第一次出现字符 c(一个无符号字符)的位置。该函数返回在字符串 str 中第一次出现字符 c 的位置,如果未找到该字符则返回 NULL。它的声明如下:

char *strchr(const char *str, int c)

代码示例:

#include <stdio.h>
#include <string.h>

int main()
{
    char str[50]="I am Jack";
    char ch = 'a';
    char *addr = strchr(str, ch);

    printf("找到:%c\n",*addr);

    return(0);
}

输出:

找到:a

三.strcmp()函数

   int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串进行比较。如果str1>str2则返回值>0,如果str1<str2则返回值>0,如果str1=str2则返回值=0。它的声明如下:

int strcmp(const char *str1, const char *str2)

如下实例:

#include <stdio.h>
#include <string.h>

int main()
{
    char str1[15]="abcde";
    char str2[15]="ABCDE";
    int ret;

    ret = strcmp(str1, str2);

    if (ret < 0)
    {
        printf("str1 小于 str2");
    }
    else if (ret > 0)
    {
        printf("str2 小于 str1");
    }
    else
    {
        printf("str1 等于 str2");
    }

    return(0);
}

输出:

str2 小于 str1

  其升级版为 int strncmp(const char *str1, const char *str2, size_t n) 把 str1 和 str2 进行比较,最多比较前 n 个字节。

四.strcpy()函数

  char *strcpy(char *dest, const char *src) 把 src 所指向的字符串复制到 dest。其返回指向dest的指针。它的声明如下:

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

如下示例:

#include <stdio.h>
#include <string.h>

int main()
{
    char src[50] ="Hello";
    char dest[100]="Who are you?";
    strcpy(dest, src);

    printf("最终的目标字符串: %s\n", dest);

    return(0);
}

输出:

最终的目标字符串: Hello

  其升级版为char *strncpy(char *dest, const char *src, size_t n) 把 src 所指向的字符串复制到 dest,最多复制 n 个字符。

posted @ 2018-03-08 19:06  !Vincent  阅读(2467)  评论(0编辑  收藏  举报