数组的输出问题
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#define LENGTH 20
int _tmain(int argc, _TCHAR* argv[])
{
char num[LENGTH];
int i,j;
printf("Enter characters:");
for(i=0;i<8;i++)
scanf("%c",&num[i]);
for(i=strlen(num);i>=0;i--)
printf("%c",num[i]);
printf("\n");
return 0;
}
上面这段代码,我的目的是想把输入的单词反向输出,可为什么会出现乱码呢,不知道问题出在哪里啊,谁可以指点一下啊。谢谢。
[解决办法]
scanf("%c",&num[i]); ==> scanf("%s",num);试试
[解决办法]
for(i=0;i<8;i++)
scanf("%c",&num[i]);
==>
scanf("%s",num);//两句换这一句
==>
for(i=0;i<8;i++)//或者换这三句
scanf("%c",&num[i]);
num[i]='\0';
[解决办法]
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#define LENGTH 20
int _tmain(int argc, _TCHAR* argv[])
{
char num[LENGTH]; // 这里必须将其初始化为空,即char num[LENGTH] = "";
int i,j;
printf("Enter characters:");
for(i=0;i<8;i++) // 这里最好用LENGTH
scanf("%c",&num[i]); // 由于LENGTH是20,所以最多18个字符+1个回车+0
for(i=strlen(num);i>=0;i--) // 记得数组是从0开始的,所以"abcdef\n"的长度为7,索引6是'\n'
printf("%c",num[i]);
printf("\n");
return 0;
}
代码不复杂,用debugger简单跟踪下即可。
[解决办法]
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#define LENGTH 20
int _tmain(int argc, _TCHAR* argv[])
{
char num[LENGTH];
int i;
printf("Enter characters:");fflush(stdout);
for(i=0;i<8;i++)
scanf("%c",&num[i]);
num[8]=0;
for(i=strlen(num)-1;i>=0;i--)
printf("[%c]",num[i]);
printf("\n");
return 0;
}