单词替换

liangkaiyu 2009-03-03 09:29:05
输入一个字符串,以回车结束(字符串长度<=100)。该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。

我的程序错在哪里呢?
#include "stdio.h"
#include "string.h"
int main(){
char sour[100], result[100];
char a[20], b[20];
char *p = NULL, *q = NULL;
int i, k = 0;
int flag;
// freopen("in.txt", "r", stdin);
gets(sour);
gets(a);
gets(b);
*p = sour[0];
while(*p != '\0'){
if (*p != ' ')
{
result[k++] = *p++;
}
else if (*p == ' ')
{
*q = *p;
flag = 1;
for (i = 0; i < strlen(a); i++)
{
if (*q++ != a[i])
{
flag = 0;
break;
}
}

if (flag == 1)
{
result[k++] = ' ';
for (i = 0; i < strlen(b); i++)
result[k++] = b[i];

*p = *q;
}
else
result[k++] = *p++;
}
}

result[k] = '\0';
puts(result);
return 0;
}
...全文
239 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lightnut 2009-03-04
  • 打赏
  • 举报
回复
按你的思路修改了一下, 试一试:

#include "stdio.h"
#include "string.h"
int main(){
char sour[100], result[100];
char a[20], b[20];
char *p = NULL, *q = NULL;
int i, k = 0;
int flag;
int word_length=0;
// freopen("in.txt", "r", stdin);
gets(sour);
gets(a);
gets(b);
p = sour;
q = sour;
while(*p != '\0'){
if ( *p==' ' || *(p+1)=='\0') {
flag = 1;
if ( *p== ' ') word_length = p - q;
else word_length = p - q + 1;
if ( word_length == strlen(a) ) {
for ( i=0; i<strlen(a); i++) {
if ( q[i]!= a[i] ){
flag = 0;
break;
}
}
}
else flag = 0;

if ( flag == 1 ) {
for (i=0; i < strlen(b); i++)
{
result[k++] = b[i];
}
}
else {
while ( q != p) {
result[k++] = *q++;
}
}

if ( *p==' ') result[k++] = ' ';
else result[k++] = *p;

q = p + 1;
}
p++;
}

result[k] = '\0';
puts(result);
return 0;
}
fx397993401 2009-03-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fx397993401 的回复:]
你 *q = NULL; 没有为他设置内存空间大小 以后怎么让它储存值呢 ,还有 p 指向 sour ,也不是这样*p = sour[0];吧
[/Quote]

呵呵 你 *q = NULL; 没有为他设置内存空间大小 以后怎么让它储存值呢 , 这个说错了
  • 打赏
  • 举报
回复
up
jianzhibeihang 2009-03-03
  • 打赏
  • 举报
回复
你这个输入也有问题呀
三个gets函数是分别输入三行
ls的说得也对
fx397993401 2009-03-03
  • 打赏
  • 举报
回复
你 *q = NULL; 没有为他设置内存空间大小 以后怎么让它储存值呢 ,还有 p 指向 sour ,也不是这样*p = sour[0];吧
GG007VSmm007 2009-03-03
  • 打赏
  • 举报
回复
up

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧