c语言字符串删除指定字符子串

c语言字符串删除指定字符子串

介绍

C语言中,字符串的处理是非常重要的一部分,可以说字符串是C语言中最重要的数据类型之一。字符串往往需要进行删除、替换等操作,本文将介绍如何在C语言中删除指定的字符子串。

实现

C语言中实现删除指定的字符子串,可以使用标准库中的函数strchr()和strcpy()等函数。strchr()函数可以用于查找字符串中的指定字符,如果找到了,则返回该字符所在的位置;否则返回NULL。strcpy()函数可以用于将一个字符串复制到另一个字符串中。利用这两个函数,就可以比较简单地实现删除指定的字符子串了。

首先,需要定义一个函数,用于删除指定的字符子串。函数需要接收两个参数,第一个参数是待删除的字符串,第二个参数是指定的字符子串。函数的实现如下:

void deleteSubStr(char *str,char *substr)

{

int len1=strlen(str),len2=strlen(substr);

while(strstr(str,substr))

{

int pos=strstr(str,substr)-str;

for(int i=pos;i

{

str[i]=str[i+len2];

}

len1-=len2;

str[len1]='\0';

}

}

在函数中,首先获取待删除字符串的长度len1和指定的字符子串的长度len2。然后使用while循环,查找待删除字符串中的子串。如果找到了,则获取该子串的位置pos。接下来使用一个for循环,将pos+len2之后的所有字符移动到pos之前的位置,覆盖掉指定的字符子串。循环结束后,更新待删除字符串的长度,并在末尾加上字符串终止符“”。

示例

为了方便理解,我们提供一个示例代码,可以直接运行来感受一下删除指定字符子串的效果。示例代码如下:

#include

#include

void deleteSubStr(char *str,char *substr);

int main(void)

{

char str[100],substr[100];

printf("Please input the string:\n");

scanf("%s",str);

printf("Please input the sub string to be deleted:\n");

scanf("%s",substr);

printf("Before:\n%s\n",str);

deleteSubStr(str,substr);

printf("After:\n%s\n",str);

return 0;

}

void deleteSubStr(char *str,char *substr)

{

int len1=strlen(str),len2=strlen(substr);

while(strstr(str,substr))

{

int pos=strstr(str,substr)-str;

for(int i=pos;i

{

str[i]=str[i+len2];

}

len1-=len2;

str[len1]='\0';

}

}

可以将上述代码复制到代码编辑器中,然后编译并运行。输入待删除的字符串和指定的字符子串,即可看到删除效果。

总结

本文主要介绍了如何在C语言中删除指定的字符子串。使用函数strchr()和strcpy()等函数可以很方便地实现删除操作。此外,本文还提供了示例代码,可以让读者更好地理解删除操作的实现和使用方法。

自己简单训练了下

#include

#include

int main(void)

{

char str[100]="abcdefg";

char substr[100]="c";

int len1=strlen(str),len2=strlen(substr);

printf("len1:%d,len2:%d\n",len1,len2);

printf("新字符串的长度等于len1-len2:%d\n",len1-len2);

int pos=strstr(str,substr)-str;

printf("pos:%d\n\n",pos);

for(int i=pos;i

printf("%d\n",i);

str[i]=str[i+len2];//将pos+len2之后的所有字符移动到pos之前的位置,覆盖掉指定的字符子串

}

len1-=len2;//更新新字符串长度

str[len1]='\0';//末尾添加\0

puts(str);

}

🎀 相关推荐

雷破乾坤
365bet官网哪里找

雷破乾坤

📅 09-30 👀 6909
烙印荣蛱蝶
office365账号永久激活

烙印荣蛱蝶

📅 07-21 👀 8278
2024赛季日足联联赛赛程时间表
office365账号永久激活

2024赛季日足联联赛赛程时间表

📅 07-04 👀 5281