我尝试了这段代码,但是在for
循环中似乎什么也没做。
#include <stdio.h>
#include <stdlib.h>
void main()
{
char word[100];
char suf [100];
int i,j,k = 0;
char a [100];
printf("Enter the word: \n");
gets(word);
printf("\n");
for (i = strlen(word); i < 0; i--)
{
a[i] = word[i];
printf("%s",a);
}
}
示例输出:
&GT;&GT;输入单词:Program
&GT;&GT;米
&GT;&GT;是
&GT;&GT; RAM
&GT;&GT;克
&GT;&GT; ogram
&GT;&GT; rogram
答案 0 :(得分:1)
使用指针算法可能是最简单的方法;你甚至不需要一个临时缓冲区:
for (i = strlen(word) - 1; i > 0; --i) {
printf("%s\n", word + i);
}
答案 1 :(得分:1)
ALTERNATIVE :使用指针方法:
#include <stdio.h>
#include<string.h>
int main(int argc, const char * argv[])
{
char word[100];
printf("Enter the word: \n");
gets(word);
printf("\n");
char *ptr;
int len = (int)strlen(word) ;
for (int i = len -1; i > 0; --i)
{
ptr = &word[i];
printf("%s\n",ptr);
}
return 0;
}
说明:
假设您输入的字符串为program
现在,索引的范围从0到6,而不是7。
在您的代码中,您从i = strlen(word)
开始,这是错误的。您应该从i = strlen(word) -1
开始。
此外,您应该递减,直到i
的值大于0
- 不小于i < 0
。
建议:
请勿使用void main(……)
。使用int main(…)
。所有编制者都可能不支持前者。