#include <
stdio.h>
#include <
string.h>
int repeated(char* str)/*检查
字符串内是否有重复的字符,有就返回1,无就返回0*/
{
int i=0, len=strlen(str)-1;//调用strlen得到字符串的长度
for(i=0; i<len; i++)/*依次查看每个字符在后面是否重复出现*/
if(strchr(str+i+1, str[i]))
return 1;/*一旦发现就立即返回*/
return 0;
}
int main()
{
int i, len, j=0;
char s1[100], s2[100], s3[100];/*保存两个字符串和
交集串*/
char* s[2]={s1,s2};/*用一个数组s来管理s1和s2以便在下面用
for循环处理*/
for(i=0; i<2; i++){/*依次输入两个字符串*///这里使用do,while循环!因为至少要输出一次!
do{
printf("请输入第%d个字符串:\n", i+1);
scanf("%s",s[i]);
}while(repeated(s[i])&&printf("串内有重复字符!\n"));/*检查是否有重复*/
}
len = strlen(s1);
for(i=0; i<len; i++)/*依次查找s1中的每一个字符是否在s2中存在*/
if(strchr(s2,s1[i]))
s3[j++] = s1[i];/*存在的字符就加入到交集中*/
s3[j] = '\0';/*添加字符串结束标记,紧记C语言里的字符串一定要加上结束符!*/
if(j>0)
printf("交集为[%s]\n", s3);
else
printf("交集为空\n");
return 0;
}
我把注释都完整了,少年还有不解之处,追问便是!
希望这些能给你提供一点帮助,亲!
追问呜呜……报错了
追答怎么可能!
你贴错了么……我发文件给你好了!