输入一个字符串,以回车结束(字符串长度<=100)。该字符串由若干个单词组成,单词之
#include
#include
#define N 100
void main()
{
char a[N],b[N],c[N];
int n,m,i,j;
printf("please in put a string:");
gets(a);
printf("please in put another:");
gets(b);
printf("please in put another:");
gets(c);
n=strlen(c);
m=strlen(b);
for(j=0;j<=N;j++)
{
if(a[j]==b[0])
break;
}
printf("%d",n);
for(i=0;i<n;i++)
a[i+j]=c[i];
for(i=n;i<m-n;i++)
a[i+j]=' ';
puts(a);
}
输入顺序为you want someone help you
you
I
上面的程序满足你的要求,但我必须说明它是有漏洞的,如果有其他要求我可以无偿帮你改进他。
#include#include#define MAX 100 //预定义字串最大长度/****************************/int replace(char *str,char *sub,char *rep);//将母串str中出现的目标子串sub用源子串rep替换掉void main(){char str[2*MAX],sub[MAX],rep[MAX];gets(str);gets(sub);gets(rep);printf("替换前:%s
",str);printf("替换次数:%d
结换后:%s
",replace(str,sub,rep),str);}int replace(char *str,char *sub, char *rep)//将母串str中出现的目标子串sub用源子串rep替换掉{ int la=strlen(str),lb=strlen(sub),lc=strlen(rep); //la=len_of(str),lb=len_of(sub),lc=len_of(rep) int i,j,n=0,k,t,m=0; char temp[2*MAX];//存放临时结果 if(lb>la||lc>MAX)//目标子串sub超长或者源子串rep超长 { printf("input error!
"); return 0; } for(i=0;i<la;i++)//母串没有结束就继续循环 { temp[n]=str[i]; n++; for(j=i,k=0;sub[k]==str[j];k++,j++)//子串中的每个字符都要与母串中的相同 if(k+1==lb) //子串比较完毕 { n--;//n要回退一位,前面已经复制了第i位字符过来,现在确认该字符是要被替换的 for(t=0;t<lc;t++,n++) temp[n]=rep[t]; i=i+k;//跳过被替换部分 m++; //替换次数统计 break; } } temp[n]='\0'; for(i=0;i<=n;i++) str[i]=temp[i];//将临时结果复制回母串str return m; //返回替换次数}
#include<string.h>
int main()
{
char a[101];
char b[101];
char c[101];
char d[101][101];
int l;
int i,j,k;
while(gets(a))
{
int t=0;
scanf("%s",b);
scanf("%s",c);
l=strlen(a);
i=0;
j=0;
for(j=0;j<101;j++)
{
for(k=0;k<101;i++,k++)
{
if(a[i]==' ') {d[j][k]=='\0';i++;break;}
else if(a[i]=='\0') {d[j][k]=='\0';t=1;break;}
else d[j][k]=a[i];
}
if(t==1) break;
}
for(i=0;i<=j;i++)
{
if(strcmp(b,d[i])==0) strcpy(d[i],c);
}
for(i=0;i<j;i++) printf("%s ",d[i]);
printf("%s\n",d[i]);
scanf("\n");
}
}
输入一个以回车结束的字符串,输出其中所出现的大写英文字母;若无大写...
if (str[i] >= 'A'&&str[i] <= 'Z') \/\/找到字符串中的大写字母 { for (j = 0; j < ny; j++)\/\/ 如果y数组中已经存在这个大写字母,就不保存了。题目意思是所有出现的大写字母,意思就是不重复的。if (y[j] == str[i])\/\/如果一样,就跳出循环了。break;if (j >= ny){...
输入一个以回车结束的字符串(少于80个字符),将其中的大写字母用下面列出...
if(str[i]='A'&&str[i]<='Z') str[i]='A'+'Z'-str[i];中应该是>='A'if(str[i]>='A'&&str[i]<='Z') str[i]='A'+'Z'-str[i];
c语言输入一个以回车结束的字符串,将其中第一次出现的连续的数字字符转...
include <stdio.h> void convert(char str[],int *dp){ sscanf(str,"%*[^0-9]%d",dp);} int main(){ char s[100];int d;scanf("%s",s);convert(s,&d);printf("%d",d);return 0;}
输入一个以回车结束的字符串(少于80个字符),把字符串中的所有数字字符转...
{ int i,s;改为{ int i,s=0;if(str[i]<=’0’|| str[i]>=’9’)改为if(str[i]>='0' && str[i]<='9')
输入一个以回车结束的字符串(少于80个字符),输出其中所出现的大写英文字...
include<stdio.h>void main(){ char str[80]; int i=0,flag=1,j=-1,k; gets(str); while(str[i]!='\\0') { if(str[i]>='A' && str[i]<='Z') { for(k=0;k<j+1;k++) if(str[k]==str[i]) break; if(k>=j+1) str[k]=s...
输入一个以回车结束的字符串(有效长度少于80),再输入一个字符,统计其在...
do{scanf("%c",&a[i]);}while(a[i++]!='\\n'&&i<=80); \/\/这里改了,不然不能保留已读的字符 b=count(a);printf("%d\\n",b);} int count(char a[80]){ int i,x=0,k=0;\/\/这里改了,要么int x=0 要么char x;不然的话x 占2个字节,它的前一个字节值不确定 scanf(...
求帮忙c语音改错!输入一个以回车结束的字符串(少于80个字符),再输入一...
include<stdio.h>void main(){ char a[80],c; int b,d=0; printf("a="); gets(a); printf("请输入一个字符"); c=getchar(); for(b=0;a[b]!='\\0';b++) { if(a[b]==c) d++; } printf("times: %d\\n",d); puts(a);} ...
输入一个以回车结束的字符串(少于10个字符),它由数字字符组成,将该字符...
include <iostream> include <string> using namespace std;int main(){ string s;cout << "Enter a string: ";cin >> s;int len = s.size();long long sum = 0;for(int i=0;i<len;i++){ if(s[i]<='9'&&s[i]>='0'){ sum*=10;sum+=s[i]-'0';} else break;} co...
输入一个字符串以回车符为结束,再输入字符c,查找c是否在字符串中...
include <stdio.h>#define NUM 100\/\/字符串长度,根据自己需要调节int main(void){ char ary[NUM] = {0}; char c; int i = 0; printf("请输入字符串(<%d):", NUM); scanf("%s", ary); getchar();\/\/去除回车 printf("请输入要查的字符:"); scanf("%...
输入一个字符串,少于20个字符,以回车符结束,判断改字符串是否是回文
假如是用C语言做 include<stdio.h>#include<string.h>int main(){ int l,i,f=0; char a[20]; scanf("%s", a); l=strlen(a); for (i=0;i < l\/2;i++) { if (a[i] == a[l-1-i]) continue; else { f=1; break; } } ...