|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
【问题描述】
输入两个字符串(字符串长度<100),在第一个字符串中查找第二个字符串(子串),若能找到,则输出第一个字符串中包含子串的个数,并删除所有子串,输出删除子串后的字符串。
【输入形式】
输入任意字符串和子串。
【输出形式】
输出该字符串中子串的个数及删除子串后的字符串
【样例输入】
asd78fghcf78f
78f
【样例输出】
2
asdghcf
本帖最后由 learner-ray 于 2021-11-16 02:57 编辑
- #include<stdio.h>
- #include<string.h>
- int main(void)
- {
- char str1[100] = "";
- char str2[100] = "";
- int len1, len2;
- int count = 0;
- int i, j, k;
- char ch = 0;
-
- printf("请输入第一个字符串:");
- scanf("%s", str1);
- len1 = strlen(str1);
-
- printf("请输入第二个字符串:");
- scanf("%s", str2);
- len2 = strlen(str2);
-
- if (len2 > len1)
- {
- printf("不包含\n");
- return 0;
- }
-
- for (i = 0; i < len1; i++)
- {
- if (str2[0] == str1[i])
- {
- for (j = 0; j < len2; j++)
- {
- if (str2[j] != str1[i])
- {
- ch = 1;
- break;
- }
- i++;
- }
- if (ch == 0)
- {
- count++;
- for (k = i - len2; k < len1 - len2; k++)
- {
- str1[k] = str1[k + len2];
- }
- for (k = len1 - len2; k < len1; k++)
- {
- str1[k] = '\0';
- }
- len1 = len1 - len2;
- i = i - len2;
- }
- i--;
- }
- }
- printf("包含了%d个第二个字符串\n", count);
- printf("删除后的字符串:%s", str1);
- }
复制代码
输出:
- 请输入第一个字符串:asd78fghcf78f
- 请输入第二个字符串:78f
- 包含了2个第二个字符串
- 删除后的字符串:asdghcf
复制代码
|
|