返回信息流题目是输入一行字符串,将其中的空格用字符%20替换。
如输入
b u p t
输出
b%20%20u%20p%20t
我写的代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define size 10
int main()
{
int c = 0, len = 0, times = 1, number = 0;
char *str = (char*)malloc(size * sizeof(char));
char *temp;
number += times * size;
while((c = getchar()) != '\n')
{ if(c == 32)
{
if((len+2) >= number)
{
times++;
number = times * size;
str = (char*)realloc(str, number * sizeof(char));
}
*(str+len) = '%';
*(str+len+1) = '2';
*(str+len+2) = '0';
len = len+3;
}
else
{
if(len == number)
{
times ++;
number = times*size;
temp = str;
str = (char*)realloc(str, number * sizeof(char));
}
*(str+len) = c;
len++;
}
}
str = (char*)realloc(str, (len+1) * sizeof(char));
*(str+len) = '\0';
printf("%s\n", str);
free(str);
return 0;
}
一直有runtime error。。。。请问我是哪里内存访问越界了吗?
这是一条镜像帖。来源:北邮人论坛 / cpp / #78463同步于 2014/4/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[问题]C语言字符串空格替换问题求解。。。。
haidong
2014/4/17镜像同步10 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
一般情况下的输入没有问题……关键是我也不知道他是什么情况会core dump……………………
【 在 FromSixToTen 的大作中提到: 】
: 单步调试呀,你个蛋蛋X
【 在 haidong 的大作中提到: 】
: 一般情况下的输入没有问题……关键是我也不知道他是什么情况会core dump……………………
单步复现异常,然后就知道错在哪里啦。
【 在 FromSixToTen 的大作中提到: 】
:
: 单步复现异常,然后就知道错在哪里啦。
情况是这样的。。。。这个是网上的题。。。然后我用这个代码提交了。。。过了四个测试案例。。。。有一个runtime error。。。。所以我复现不了。。。。
【 在 jetstorm 的大作中提到: 】
: 没仔细看,不过,你试过输入通过^c结束的时候程序能正确么?
^C不是发中断信号么。。。。应该不会有结果显示出来的。。。
【 在 haidong 的大作中提到: 】
: 题目是输入一行字符串,将其中的空格用字符%20替换。
: 如输入
: b u p t
: ...................
main函数定义有问题
int main(int argc,char **argv)
{
...
}