/*
s1 = Visaul stuio 2010
s2 = Visual C++ 6.0
"Visaul stdio 2010Visual C++ 6.0" + "Visual C++ 6.0" = "Visaul stuio 2010Visual C++ 6.0"
要统计上面的
字符串中的字符 c = 0
Visaul stdio 2010Visual C++ 6.0中共有3个字符0。
Press any key to continue
*/
#include <stdio.h>
char *mystrcat(char *s1, char *s2) { // s1 + s2 => s1
char *p1 = s1,*p2 = s2;
while(*p1) ++p1;
while(*p1++ = *p2++);
return s1;
}
int countch(char *s, char c) { // 返回出现在s中的字符c的个数
int count = 0;
char *p = s;
while(*p) {
if(*p == c) ++count;
++p;
}
return count;
}
int main() {
char s1[81],s2[81],ch;
printf("s1 = ");
gets(s1);
printf("s2 = ");
gets(s2);
printf("\"%s\" + \"%s\" = \"%s\"\n",s1,s2,mystrcat(s1,s2));
printf("要统计上面的字符串中的字符 c = ");
fflush(stdin);
scanf("%c",&ch);
printf("%s中共有%d个字符%c。\n",s1,countch(s1,ch),ch);
return 0;
}
追问要存放到另外一个 数组里面 不是 存放到 S1
追答没看明白你的追问,s1和s2都是数组呀!难倒希望存放到另一个数组中?
char *mystrcat(char s[],char *s1, char *s2) { // s <= s1 + s2
char *p = s,*p1 = s1,*p2 = s2;
while(*p++ = *p1++);
while(*p++ = *p2++);
return s;
}
本回答被网友采纳