返回信息流程序功能很简单,就是输入一个字符串,将输入字符串里面的空格变成%20输出。最近在看指针,就没想用数组去写,结果被指针打脸了,大神看看哪里出错了,程序运行的时候,如果输入的字符串过长(大概占满一整行)的时候,程序就运行不起来了。。代码如下:
/*
*将字符串中的空格替换为%20
*/
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
int main()
{
char *str=NULL;
char *str1=NULL;
char *p;
char *p1;
str=(char *)malloc(sizeof(char));
str1=(char *)malloc(sizeof(char));
p=str;
p1=str1;
gets(str);
while((*p)!='\0')
{
if((*p)==' ')
{
*p1='%';
*(++p1)='2';
*(++p1)='0';
}
else
{
*(p1)=*(p);
}
++p1;
++p;
}
*(p1)='\0';
printf("%s\n",str1);
free(str);
free(str1);
return 0;
}
这是一条镜像帖。来源:北邮人论坛 / cpp / #83799同步于 2014/10/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
为毛输入的字符串一长就不能运行,求大神拍醒
ahfytao
2014/10/30镜像同步11 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
可以说详细点吗?lz是菜鸟[ema1]
【 在 q397273499 的大作中提到: 】
: sizeof(char) ?太凶残
: 通过『我邮2.0』发布
已脑补malloc函数的具体用法,多谢~
【 在 q397273499 的大作中提到: 】
: sizeof(char) ?太凶残
: 通过『我邮2.0』发布
问题已解决,多谢~
【 在 germinant (东京不太冷) 的大作中提到: 】
: 你申请的空间太小了,sizeof(char)只有一个字节
通过『我邮2.0』发布
【 在 nuanyangyang 的大作中提到: 】
: 楼主请学python,没有这种问题,还有httplib什么的帮你。
: 来自「北邮人论坛手机版」
哈哈哈哈暖洋洋你真是够了 每个帖子都在推荐Python
【 在 nuanyangyang 的大作中提到: 】
: 楼主请学python,没有这种问题,还有httplib什么的帮你。
: 来自「北邮人论坛手机版」
暖神到处推荐python,真是努力cry。
最近正在努力学python,有什么好的推荐吗?谢谢啦
【 在 nuanyangyang 的大作中提到: 】
: 楼主请学python,没有这种问题,还有httplib什么的帮你。
: 来自「北邮人论坛手机版」