C语言 字符串和字符串函数

  • Post category:C

下面我将为您详细讲解C语言中字符串和字符串函数的使用攻略。

字符串基础

在C语言中,字符串是指一串字符的集合,其实现方式为以字符数组的形式存储,以\0结尾。

以下是字符串的基本操作示例:

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

int main() {
    char str1[20] = "hello";
    char str2[20] = "world";

    // strlen()可获取字符串长度,不包括'\0'
    printf("str1的长度为:%d\n", strlen(str1)); // 输出:5

    // strcat()可将第二个字符串追加到第一个字符串结尾
    strcat(str1, str2);
    printf("str1的内容为:%s\n", str1); // 输出:helloworld

    // strcpy()可将第二个字符串复制到第一个字符串中
    strcpy(str1, "hello");
    strcpy(str2, "world");
    printf("str1的内容为:%s\n", str1); // 输出:hello
    printf("str2的内容为:%s\n", str2); // 输出:world

    // strcmp()可比较两个字符串是否相等
    if (strcmp(str1, str2) == 0) {
        printf("str1和str2相等\n");
    } else {
        printf("str1和str2不相等\n");
    }

    return 0;
}

字符串函数应用

C语言提供了许多字符串处理函数,下面列出几个常用的字符串函数及其使用方法:

strstr()

strstr()函数用于在一个字符串中查找指定的子串。如果查找成功,函数返回指向该子串的指针;如果查找失败,函数返回NULL

以下是strstr()函数的示例:

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

int main() {
    char str1[20] = "hello, world";
    char str2[20] = "world";

    // strstr()可查找子串,并返回第一次出现该子串的地址
    char *pStr = strstr(str1, str2);
    if (pStr != NULL) {
        printf("str2在str1中的起始地址为:%p\n", pStr); // 输出:0x7ffee9d7630b
    } else {
        printf("str2在str1中未找到\n");
    }

    return 0;
}

strchr()

strchr()函数用于在一个字符串中查找指定的字符。如果查找成功,函数返回指向该字符的指针;如果查找失败,函数返回NULL

以下是strchr()函数的示例:

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

int main() {
    char str1[20] = "hello, world";
    char ch = ',';

    // strchr()可查找字符,并返回第一次出现该字符的地址
    char *pCh = strchr(str1, ch);
    if (pCh != NULL) {
        printf("ch在str1中的起始地址为:%p\n", pCh); // 输出:0x7ffee6d76307
    } else {
        printf("ch在str1中未找到\n");
    }

    return 0;
}

总结

本篇文章详细讲解了C语言中字符串和字符串函数的使用攻略,包括字符串的基础操作和常用字符串函数的使用方法。希望对您有所帮助。