掌握C语言:字符串函数的使用与示例

本文详细介绍了C语言中string.h库中的strlen、strcpy、strcmp、strchr和strstr五个常用字符串处理函数的用法、作用及示例,展示了这些函数在简化字符串操作中的重要性。
摘要由CSDN通过智能技术生成

在C语言中,字符串处理是常见的任务,而C的string.h库提供了许多内置函数,使得这些任务变得简单和高效。在本篇博客中,我们将深入探讨这些函数的使用方案和应用场景。

目录

主体段1:strlen函数

主体段2:strcpy函数

主体段3:strcmp函数

主体段4:strchr函数

主体段4:strstr函数

主体段1:strlen函数

(作用:返回字符串长度,不包括末尾的空字符

strlen()函数用于计算给定字符串的长度。这个函数通过遍历字符串直到遇到空字符\0来确定字符串的长度。 示例: 

#include <stdio.h>
#include <string.h>
//字符串函数strlen():返回字符串长度,不包括末尾的空字符
int main() {
    char str[] = "Hello, World!";
    int len = strlen(str);
    printf("字符串长度是:%d\n", len);//这段代码中的strlen函数将返回字符串"Hello, World!"的长度,不包括末尾的空字符
    return 0;
}
//输出13

主体段2:strcpy函数

(作用:主要用于比较两个字符串的大小

strcpy()函数用于用于比较两个字符串是否相同

#include <string.h>
#include <stdio.h>
//字符串函数strcmp(),主要用于比较两个字符串的大小
int main() {
    char str1[] = "Hello";
    char str2[] = "Hello";
    int result = strcmp(str1, str2);
    if(result == 0) {
        printf("Strings are equal.\n");
    } else {
        printf("Strings are not equal.\n");
    }
    return 0;
}
//输出:Strings are equal.

主体段3:strcmp函数

(作用:将源字符串拷贝到目标字符串中

strcmp()函数用于将源字符串拷贝到目标字符串中(包括源字符串的结尾null字符('\0')在内一直拷贝到目标字符串中)

//字符串函数strcpy():将源字符串拷贝到目标字符串中(包括源字符串的结尾null字符('\0')在内一直拷贝到目标字符串中)
char *mycpy(char* dst, const char* src)
{   
    /* 下面这段代码主要实现了字符串复制的功能,它对src字符串中的每个字符进行遍历,并将其复制到dst字符串中。
    src[idx] != '\0'这个条件是用来检查是否已经遍历到了src字符串的末尾,因为在C语言中,字符串以空字符'\0'作为结束标志。
    当遍历完src字符串后,将dst字符串的末尾添加空字符'\0',表明字符串的结束。 */

    /* int idx = 0;
    while (src[idx] != '\0')
    {
        dst[idx] = src[idx];
        idx++;
    }
    dst[idx] = '\0'; */

    /* 下面这段代码同样是实现了字符串复制的功能,但是它使用了指针的方式进行操作,使代码更为简洁。
    在while循环中,*dst++ = *src++这行代码实现了把指针src指向的字符复制到指针dst指向的位置,并且src和dst都向后移动一位。
    由于在C语言的字符串中,字符串的末尾是空字符'\0',这个空字符也会被复制到dst字符串,所以dst字符串的末尾自动添加了字符串结束的'\0'。 */
    char* ret =dst;
    while( *dst++ = *src++);
    *dst = '\0';

    return dst;
}
int main(int argc, char const *argv[])
{
    char s1[100];
    char s2[] = "abc";
    mycpy(s1, s2);
    printf("%s\n", s1);
    return 0;
}
//输出:abc

主体段4:strchr函数

(作用:查找字符在字符串中首次出现位置的函数

#include <stdio.h>
#include <string.h>
/*我们在字符串 "This is a sample string" 中查找字符 's'。
当找到一个 's',打印其在字符串中的位置(从 1 开始计数),然后继续搜索下一个 's'。
这个过程将一直持续,直到没有找到 's',此时 strchr 返回 NULL,循环结束。*/
int main ()
{
  char str[] = "This is a sample string";//要搜索的字符串
  char * pch;
  pch=strchr(str,'s');
  while (pch!=NULL)
  {
    printf ("found at %d\n",pch-str+1);
    pch=strchr(pch+1,'s');//递增指针pch+1寻找下一个 's'
  }
  return 0;
}

主体段4:strstr函数

(作用:用于在一个字符串中查找另一个字符串

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

int main()
{
    char str[] = "Hello, World!";
    char sub[] = "World";
    char *p = strstr(str, sub);//定义两个字符串,一个是主字符串str[],另一个是子字符串sub[]。
    if (p)
    {
        printf("子字符串 'World' 在主字符串中的位置: %d\n", p - str);
        /*检查p是否为NULL。如果不是NULL(也就是找到了子字符串)
        计算子字符串出现的位置(子字符串的首字符在主字符串中的位置为 p-str)。*/
    }
    else
    {
        printf("子字符串 'World' 不在主字符串中。\n");
    }
    return 0;
}

从以上的讲解和示例中,我们可以看到C语言中的字符串函数如何使得处理字符串变得简单。在编写C语言程序时,硬核编写字符串处理相关的代码会非常麻烦,而使用这些字符串函数能显著提高我们的效率。当然,字符串函数的世界不止这些,我强烈建议探索string.h库,以了解更多强大的字符串处理工具。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值