我是C编程的初学者,我的代码有问题。我想写一个C代码,当我给它一个反向句子时,程序打印通常安排的句子。 (你可以看到这个例子)。我的问题是,当我没有放任何标志时?要么 !等,句子没有正确打印。 (见例子) 你能帮我解决这个问题吗?我想要一个代码来显示我给它的所有类型的反向句子。 (对不起我的英文)
Example :
Input : oD uoy tnaw ot eunitnoc?
Output: Do you want to continue?
但是我什么时候写这句话呢?签名:
Input : oD uoy tnaw ot eunitnoc
Output: Do you want to
并且它没有显示'继续'
这是我的代码:
#include <stdio.h>
int main()
{
char sentence[100];
int ch, i, j, k;
for (i=0; i<sizeof(sentence)-1; i++)
if ((sentence[i] = getchar()) == '\n')
break;
sentence[i] = '\0';
for (j = 0; j <i; j++)
{
if(islower(sentence[j])||isupper(sentence[j]))
continue;
for( k=j-1;sentence[k]!=' ' && k>=0;k--)
{
ch=sentence[k];
putchar(ch);
}
ch=sentence[j];
putchar(ch);
}
return 0;
}
我尝试了很多合乎逻辑的方法,但结果并没有改变:(。
答案 0 :(得分:0)
只需改变一下:
for (j = 0; j <i; j++)
到这个
for (j = 0; j <=i; j++)
答案 1 :(得分:0)
第二个for-loop更改为
for (j = 0; j <=i; j++)
{
if(isalpha(sentence[j]))
continue;
for( k=j-1; k>=0 && isalpha(sentence[k]);k--)
{
putchar(sentence[k]);
}
if(sentence[j])
putchar(sentence[j]);
}