编纂一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字字符间空一个空格。如输入1990,应输出“1 9 9 0”
编写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字字符间空一个空格。如输入1990,应输出“1 9 9 0”。
#include<stdio.h>
#include<string.h>
void main()
{
char str[80];
void insert(char str[]);
printf("input four digits: ");
gets(str);
insert(str);
}
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);
}
请问大牛,str[2*i]=str[i];str[2*i-1]=' ';这里2*i是什么意思?有什么用吗?
------解决方案--------------------
1990
位置0123
1 9 9 0
位置0 2 4 6
------解决方案--------------------
int i;
for(i=strlen(str);i>0;i--)
{
str[2*i]=str[i]; //下标0123->0246
str[2*i-1]=' '; //下标1357的就为' '
}
------解决方案--------------------
------解决方案--------------------
#include<stdio.h>
#include<string.h>
void main()
{
char str[80];
void insert(char str[]);
printf("input four digits: ");
gets(str);
insert(str);
}
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);
}
请问大牛,str[2*i]=str[i];str[2*i-1]=' ';这里2*i是什么意思?有什么用吗?
------解决方案--------------------
1990
位置0123
1 9 9 0
位置0 2 4 6
------解决方案--------------------
int i;
for(i=strlen(str);i>0;i--)
{
str[2*i]=str[i]; //下标0123->0246
str[2*i-1]=' '; //下标1357的就为' '
}
------解决方案--------------------
------解决方案--------------------
- C/C++ code
//编写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字字符间空一个空格。 //如输入1990,应输出“1 9 9 0”。 #include <stdio.h> #include <ctype.h> void fun() { char d[5]; int i; while (1) { printf("\n请输入一个4位数字:"); fflush(stdout); rewind(stdin); fgets(d,5,stdin); if (isdigit(d[0]) && isdigit(d[1]) && isdigit(d[2]) && isdigit(d[3])) break; } for (i=0;i<4;i++) printf("%c ",d[i]); printf("\n"); } int main() { fun(); return 0; }