c语言编程编写函数,在一个字符串中查找字符x,将其全部替换为y(x、y都是任意字符变量)。 100
刚学c语言这是题目各位大神给看看老是报错,编写函数,在一个字符串中查找字符x,将其全部替换为y(x、y都是任意字符变量)。替换成功返回1,没有找到字符x则返回0。在mai...
刚学c语言这是题目各位大神给看看老是报错,编写函数,在一个字符串中查找字符x,将其全部替换为y(x、y都是任意字符变量)。替换成功返回1,没有找到字符x则返回0。在main函数中调用并输出替换后的字符串。
#include<stdio.h>
#include<stdlib.h>
#define N 15
int Exchange(char a[], char x, char y)
{
int i = 0, j;
while (a[i] != '/0')
{
if (a[i] == x)
{
a[i] = y;
j = 1;
}
i++;
}
if (j != 1)
j = 0;
return j;
}
void main()
{
int i;
char x, y, a[N];
gets_s(a);
scanf_s("%c%c", &x, &y);
i = Exchange(a, x, y);
puts(a);
system("pause");
} 展开
#include<stdio.h>
#include<stdlib.h>
#define N 15
int Exchange(char a[], char x, char y)
{
int i = 0, j;
while (a[i] != '/0')
{
if (a[i] == x)
{
a[i] = y;
j = 1;
}
i++;
}
if (j != 1)
j = 0;
return j;
}
void main()
{
int i;
char x, y, a[N];
gets_s(a);
scanf_s("%c%c", &x, &y);
i = Exchange(a, x, y);
puts(a);
system("pause");
} 展开
4个回答
展开全部
//你的代码没什么逻辑问题,只是书写规范有错:看我注释
#include<stdio.h>
#include<stdlib.h>
#define N 15
int Exchange(char *a, char x, char y)
{
int i = 0, j;
bool isFind = false;
while (a[i] != '\0') //这里是\0,不是/0
{
if (a[i] == x)
{
a[i] = y;
isFind = true;
}
i++;
}
return isFind;
}
void main()
{
int i;
char x, y, a[N];
gets(a);
scanf("%c,%c", &x, &y); //%c和%c之前有逗号,隔开
if( Exchange(a, x, y) ){
puts(a);
}
else
printf("没有被替换\n");
system("pause");
}
展开全部
#include<stdio.h>
int Exchange(char *a, char x, char y)
{
char ch;
int i, j;
for (j=i=0; ; ++i,++a)
{
ch = *a;
if (0==ch) break;
if (ch!=x) continue;
*a = y;
j = 1;
}
return j;
}
void main()
{
char x, y, str[1000];
printf("请输入一个字符串:");
gets(str);
printf("请输入待查找字符和替换字符:");
scanf("%c%c", &x, &y);
if ( Exchange(str, x, y))
printf("替换成功。替换后的字符串为:\n%s\n",str);
else
printf("没有在输入字符串内发现字符%c.\n", x);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
#include<stdlib.h>
#define N 15
int Exchange(char *in, char x, char y, char *out)
{
int i = 0, changed = 0;
while (in[i] != '\0')
{
if (in[i] == x)
{
out[i] = y;
changed = 1;
}
else
out[i] = in[i];
i++;
}
return changed;
}
void main()
{
int i;
char x, y, a[N], b[N];
memset(a, 0, N);
memset(b, 0, N);
printf("string:\n");
gets(a);//取出字符串,并且把换行符取出来,但不存入a
printf("two char:\n");
scanf("%c %c", &x, &y);
printf("[%s] [%c] [%c]\n", a, x, y);
i = Exchange(a, x, y, b);
printf("i: %d, b:%s\n", i, b);
system("pause");
}
这样就解决了。
输入的时候要注意换行符的处理。请采纳,谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while (a[i] != '/0') --》 while (a[i] != '\0')
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询