C语言习题求解答

写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格。如输入2008变成2008。(可以帮我翻译一下这个程序什么意思嘛,特别是“voiddx(c... 写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格。如输入2008变成2 0 0 8。(可以帮我翻译一下这个程序什么意思嘛,特别是“void dx(char b[])”里的程序)。
#include <stdio.h>
#include <string.h>
void dx(char b[])
{
char c[100];
char *p = b;
int i = 0;
while(*b)
{
c[i++] = *b++;
c[i++] = ' ';
}
c[--i] = '\0';
strcpy(p,c);
}
void main()
{
char a[80];
gets(a);
dx(a);
puts(a);
}
展开
 我来答
阳光的王子_
2013-12-16 · 超过11用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:33.1万
展开全部
#include <stdio.h>
#include <string.h>
void dx(char b[])/*这个是定义一个函数 形参为一个字符数组*/
{
char c[100];/*定义字符数组的长度*/
char *p = b;/*定义指针p,并且把b数组的首地址赋给p*/
int i = 0;
while(*b)/* *b是表示数组的值,这里是一致循环到'/0'处*/
{
c[i++] = *b++;/*把数组b的一个元素赋给c数组,然后b+1; 这里是先赋值在++*/
c[i++] = ' ';/*假设b[0]的值赋给了c[0],那么这里就是c[1]=‘ ’*/
}
c[--i] = '\0';/*因为你没赋一个值给c数组你就给了一个空格,所以这个时候到结束时是不是多一个空格,这个时候就要把最好一个位置赋值为‘/0’*/
strcpy(p,c);/*把c的首地址拷贝给p*/
}
void main()
{
char a[80];
gets(a);
dx(a);
puts(a);
}
你看看了 还有什么问题没。。。
觉得还行的话 采纳下了 嘻嘻
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式