初用指针数组,使用不当...肯否指导一下新人无知的错出哪了?

ZzwCoder 2019-11-27 05:34:13

/*本题要求编写一个解密藏头诗的程序。
输入格式:
输入为一首中文藏头诗,一共四句,每句一行。注意:一个汉字占两个字节。
输出格式:
取出每句的第一个汉字并连接在一起形成一个字符串并输出。同时在末尾输入一个换行符。
输入样例:
一叶轻舟向东流
帆稍轻握杨柳手
风纤碧波微起舞
顺水任从雅客流
输出样例:
一帆风顺*/
#include<stdio.h>
#include<stdlib.h>
void input(char *str[]);
void output(char *p);
int main()
{

char *str[4];
/*返回指针地址类型的malloc函数的接收方法:
为指针地址类型变量接收*/
input(str);

char p[20];
int i;
for( i=0;i<4;i++)
{
p[i*2]=*(*(str+i)+0);
p[i*2+1]=*(*(str+i)+1);

}
p[i*2]='\0';
output(p);


}
void input(char *str[])
{
for(int i=0;i<4;i++)
{
str[i]=(char *)malloc(sizeof(char)*15);
scanf("%s",&str[i]);
}
}
void output(char *p)
{
printf("%s",p);
}
是不是在内存分配上出了问题,
还是在地址上指向出现了问题。
...全文
126 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
youla2 2019-11-28
  • 打赏
  • 举报
回复
这是改了之后的结果
youla2 2019-11-28
  • 打赏
  • 举报
回复
把input函数里的scanf里的&去掉,str[i]本身就是指针
黄哥Python培训 2019-11-28
  • 打赏
  • 举报
回复
先纠正你的一个错误认识,汉字没有当然是站二个字节,要看编码,windows 下一般占2个字节,Linux 下占3个字节。 你这个核心的问题是要从一个字符串中抽取首个中文字符。
ZzwCoder 2019-11-27
  • 打赏
  • 举报
回复
不好意思啊
铖邑 2019-11-27
  • 打赏
  • 举报
回复
看不出什么问题,什么问题把提示发出来啊,提个问题都这么没效率

70,037

社区成员

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

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