在两个字符串中找字符 哪位大神帮忙答一下这道C语言题目啊
编写程序:从键盘输入两个字符串,找出其中没有同时出现在两个字符串中的字符。例如:输入串1:abca串2:bcd输出:ad在网上找过了,都不能通过测试例2一楼的这个答案还不...
编写程序:从键盘输入两个字符串,找出其中没有同时出现在两个字符串中的字符。
例如:输入串1:abca 串2:bcd
输出:ad
在网上找过了,都不能通过测试例2
一楼的这个答案还不对 展开
例如:输入串1:abca 串2:bcd
输出:ad
在网上找过了,都不能通过测试例2
一楼的这个答案还不对 展开
展开全部
//方法,找出同时在两个数组中出现的字母,做标记,剩下的就是本题结果。
void GetDiffChar( char* str1, char* str2, char* strOut)
{
const int nCout1 = strlen(str1);
const int nCout2 = strlen(str2);
for(int i=0; i<nCout1; i++)
{
char ch = str1[i];
for(int j=0; j<nCout2; j++)
{
if (str2[j] == ch)
{
str1[i] = 0xff; // mark
str2[j] = 0xff;
break;
}
}
}
//out
int nOutIndex = 0;
for(int i=0; i<nCout1; i++)
{
if(((unsigned char)str1[i]) != 0xff)
{
strOut[nOutIndex++] = str1[i];
}
}
for(int i=0; i<nCout2; i++)
{
if(((unsigned char)str2[i]) != 0xff)
{
strOut[nOutIndex++] = str2[i];
}
}
}
int main(void)
{
char str1[] = "1245678";
char str2[] = "943518";
char strOut[100] = {0};
GetDiffChar(str1, str2, strOut);
printf(strOut);
return 0;
}
void GetDiffChar( char* str1, char* str2, char* strOut)
{
const int nCout1 = strlen(str1);
const int nCout2 = strlen(str2);
for(int i=0; i<nCout1; i++)
{
char ch = str1[i];
for(int j=0; j<nCout2; j++)
{
if (str2[j] == ch)
{
str1[i] = 0xff; // mark
str2[j] = 0xff;
break;
}
}
}
//out
int nOutIndex = 0;
for(int i=0; i<nCout1; i++)
{
if(((unsigned char)str1[i]) != 0xff)
{
strOut[nOutIndex++] = str1[i];
}
}
for(int i=0; i<nCout2; i++)
{
if(((unsigned char)str2[i]) != 0xff)
{
strOut[nOutIndex++] = str2[i];
}
}
}
int main(void)
{
char str1[] = "1245678";
char str2[] = "943518";
char strOut[100] = {0};
GetDiffChar(str1, str2, strOut);
printf(strOut);
return 0;
}
追问
字符串是要手动输入的,不是定义的
追答
void GetDiffChar( char* str1, char* str2, char* strOut)
{
const int nCout1 = strlen(str1);
const int nCout2 = strlen(str2);
for(int i=0; i<nCout1; i++)
{
char ch = str1[i];
for(int j=0; j<nCout2; j++)
{
if (str2[j] == ch)
{
str1[i] = 0xff; // mark
str2[j] = 0xff;
}
}
}
//out
int nOutIndex = 0;
for(int i=0; i<nCout1; i++)
{
if(((unsigned char)str1[i]) != 0xff)
{
strOut[nOutIndex++] = str1[i];
}
}
for(int i=0; i<nCout2; i++)
{
if(((unsigned char)str2[i]) != 0xff)
{
strOut[nOutIndex++] = str2[i];
}
}
}
int main(void)
{
char str1[100] = {0};
char str2[100] = {0};
printf("Please input the first string:");
scanf("%s", str1);
printf("Please input the second string:");
scanf("%s", str2);
char strOut[100] = {0};
GetDiffChar(str1, str2, strOut);
printf(strOut);
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include "stdio.h"
#include "string.h"
//从键盘输入两个字符串,找出其中没有同时出现在两个字符串中的字符。
//eg: abcd&&bdfg -------- abfg
main()
{
char a[100];
char b[100];
char c[100] = {0};
char d[100] = {0};
printf("请输入字符串a:\n");
scanf("%s", a);
printf("请输入字符串b:\n");
scanf("%s", b);
int n = strlen(a);
int m = strlen(b);
int k = 0;
int i, j;
for(i = 0; i < n; ++i) //选出字符串a中独有的字符
{
int judge = 1;
for(j = 0; j < m; ++j)
{
if(a[i] == b[j])
{
judge = 0;
return 0;
}
}
if(judge == 0)
continue;
c[i] = a[i];
}
for(i = 0; i < m ; ++i) //选出字符串b中独有的字符
{
int judge = 1;
for(j = 0; j < n; ++j)
{
if(b[i] == a[j])
{
judge = 0;
return 0;
}
}
if(judge == 0)
continue;
d[i] = b[i];
}
int n1 = strlen(c);
for(i = 0; i < n1; ++i)
printf("%c", c[i]);
int n2 = strlen(d);
for(i = 0;i < n2; ++i)
printf("%c", d[i]);
}
#include "string.h"
//从键盘输入两个字符串,找出其中没有同时出现在两个字符串中的字符。
//eg: abcd&&bdfg -------- abfg
main()
{
char a[100];
char b[100];
char c[100] = {0};
char d[100] = {0};
printf("请输入字符串a:\n");
scanf("%s", a);
printf("请输入字符串b:\n");
scanf("%s", b);
int n = strlen(a);
int m = strlen(b);
int k = 0;
int i, j;
for(i = 0; i < n; ++i) //选出字符串a中独有的字符
{
int judge = 1;
for(j = 0; j < m; ++j)
{
if(a[i] == b[j])
{
judge = 0;
return 0;
}
}
if(judge == 0)
continue;
c[i] = a[i];
}
for(i = 0; i < m ; ++i) //选出字符串b中独有的字符
{
int judge = 1;
for(j = 0; j < n; ++j)
{
if(b[i] == a[j])
{
judge = 0;
return 0;
}
}
if(judge == 0)
continue;
d[i] = b[i];
}
int n1 = strlen(c);
for(i = 0; i < n1; ++i)
printf("%c", c[i]);
int n2 = strlen(d);
for(i = 0;i < n2; ++i)
printf("%c", d[i]);
}
更多追问追答
追问
我测试了,可以编译成功,但是什么都没输出啊,大神,求帮忙修改下
追答
如果还不行,那大概就是编译器的不同了,我用的是vc++6.0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询