10-1. 在字符串中查找指定字符(15)
输入一个字符串S,再输入一个字符c,要求在字符串S中查找字符c。如果找不到则输出“Not found”;若找到则输出字符串S中从c开始的所有字符。
输入格式:
输入在第1行中给出一个不超过80个字符长度的、以回车结束的非空字符串;在第2行中给出一个字符。
输出格式:
在一行中按照题目要求输出结果。
输入样例1:
It is a black box
b
输出样例1:
black box
输入样例2:
It is a black box
B
输出样例2:
Not found
#include
#include
int main()
{
char a;
char str[90];
int len, i, p, flag;
gets(str);
a = getchar();
len = strlen(str);
flag = 0;
for (i = 0; i <= len - 1; i++)
{
if (str[i] == a)
{
p = i;
flag = 1;
break;
}
}
if (flag == 0)
{
printf("Not found");
}
else
{
for (i = p; i <= len - 1; i++)
{
printf("%c", str[i]);
}
}
return 0;
}
10-2. 删除字符串中的子串(20)
输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。
输入格式:
输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。
输出格式:
在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串。
输入样例:
Tomcat is a male ccatat
cat
输出样例:
Tom is a male.
#include
#include
int main()
{
char str1[100];
char str2[100];
int len1, len2, i, j, k,flag,n,count;
count = 0;
gets(str1);
gets(str2);
len1 = strlen(str1);
len2 = strlen(str2);
for (i = 0; i <= len1 - 1; i++)//计算出现下面首字母的次数,也是进行分隔字符筛选的循环次数
{
if (str1[i] == str2[0])
{
count++;
}
}
for (n = 1; n <= count - 1; n++)
{
for (i = 0; i <= len1 - 1; i++)//从第一位开始遍历字符串2的首字母
{
if (str1[i] == str2[0])
{
flag = 0;
for (j = i; j <= i + len2 - 1; j++)//从字符串一截取字符串二长度的字符
{
if (str1[j] != str2[j - i])//判断两组字符是否相对
{
flag = 1;
break;
}
}
if (flag == 0)//长得相同就将右边的字符向左移字符串2的长度,并且将字符串1减去该长度
{
for (k = i; k <= len1 - 1; k++)
{
str1[k] = str1[k + len2];
}
len1 = len1 - len2;
}
}
}
}
for (i = 0; i <= len1 - 1; i++)//输出处理后字符串
{
printf("%c", str1[i]);
}
return 0;
}
10-3. 字符串逆序(15)
输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。
输入格式:
输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。
输出格式:
在一行中输出逆序后的字符串。
输入样例:
Hello World!
输出样例:
!dlroW olleH
#include
#include
int main()
{
char str[10000];
int len, i;
gets(str);
len = strlen(str);
for (i = len - 1; i >= 0; i--)
{
printf("%c", str[i]);
}
return 0;
}
10-4. 字符串循环左移(20)
输入一个字符串和一个非负整数N,要求将字符串循环左移N次。
输入格式:
输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串;第2行给出非负整数N。
输出格式:
在一行中输出循环左移N次后的字符串。
输入样例:
Hello World!
2
输出样例:
llo World!He
#include
#include
int main()
{
char str[250];
int num, len, i;
gets(str);
scanf("%d", &num);
len = strlen(str);
for (i = len; i <= 2 * len - 1; i++)
{
str[i] = str[i - len];
}
num = num%len;
for (i = num; i <= num+len-1; i++)
{
printf("%c", str[i]);
}
return 0;
}