谁帮我解释一下这个功能的函数每步实现的功能,就是每步是啥意思

#include<stdio.h>#include<string.h>intmain(){charstr[80];voidinsert(char[]);printf("i... #include <stdio.h>
#include <string.h>
int main()
{char str[80];
void insert(char []);
printf("input four digits:");
scanf("%s",str);
insert(str);
return 0;
}

void insert(char str[])
{int i;
for (i=strlen(str);i>0;i--)
{str[2*i]=str[i];
str[2*i-1]=' ';
}
printf("output:\n%s\n",str);
}
展开
 我来答
蓝猫叔叔Pan
2013-01-08 · TA获得超过258个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:173万
展开全部
#include <stdio.h>
#include <string.h> //这两句就不用说了吧
int main() //主函数main
{
char str[80]; //定义一个长度为80的字符数组str
void insert(char []); // 声明函数 insert(char[])
printf("input four digits:"); //输出 intput four digits
scanf("%s",str); //用scanf函数接收键盘输入的字符存入str数组中
insert(str); //调用 insert函数 用str做参数
return 0; //main结束 返回 0
}
void insert(char str[]) //定义函数insert(char str[])
{int i; //定义整型变量i
for (i=strlen(str);i>0;i--) /* for循环 ,给i赋值数组的长度,当数组长度大于0时,执行下面的语句每次循环后 i自减,也就是 i=i-1 */
{
str[2*i]=str[i]; //这个是把数组中的偶数的元素全部赋值成 你刚才数组中的str[1]的值;
str[2*i-1]=' '; //这个是把数组中的奇数的元素全部赋值为空格
}
printf("output:\n%s\n",str); //输出 output:回车符 把str字符数组做为字符串输出
}
pt...c@163.com
2013-01-08 · TA获得超过103个赞
知道答主
回答量:275
采纳率:0%
帮助的人:85.1万
展开全部
就是给输入的字符串中的每个字符中间加以个空格,首先要保证str足够长

str[2*i]=str[i]; 先把i的数据放到2*i的位置
str[2*i-1]=' '; 在把2*i-1的位置成空格。
其他的都好理解了吧

我觉得最好是 把
for (i=strlen(str);i>0;i--) 改成for (i=strlen(str)-1;i>0;i--) 这样在字符串最后就不会有空格。也需是特定需要吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jiayou_lee
2013-01-08 · 超过26用户采纳过TA的回答
知道答主
回答量:91
采纳率:0%
帮助的人:48.9万
展开全部
你这个程序不报错吗?
感觉上是输入的字符串变成原来的两倍?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式