我曾尝试编写一个程序来反转用户输入,并将其打印回用户,下面的代码运行良好:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char reverse ( char inp [20] ) {
char rev [20];
int l, i=0, j=0, k=1;
l = strlen( inp );
while ( i<l ) {
rev[j] = inp[l-k];
i++;
j++;
k++;
}
printf("%s \n", rev);
return 0;
}
int main () {
char input [20];
fgets( input, 20, stdin );
reverse ( input );
return 0;
}但我希望程序只打印'.'之前的所有内容,我尝试使用:
if ( inp[i] == '.') { break; }在while循环中,在rev[j] =之前。但它们都返回相同的问题,如果用户输入:
John . Jones 它将打印:
seno 我对此真的很陌生,但任何帮助都将不胜感激。
发布于 2014-11-08 23:32:53
,但我希望程序只打印
'.'之前的所有内容
如果你得到了'.',那么简单地从while循环中中断。并使用\0终止字符数组。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char reverse ( char inp [20] ) {
char rev [20];
int l, i=0, j=0, k=1;
l = strlen( inp );
while ( i<l ) {
if (inp[l-k] == '.')
break;
rev[j] = inp[l-k];
i++;
j++;
k++;
}
rev[j]='\0'; //Terminate the char array with \0
printf("%s \n", rev);
return 0;
}
int main () {
char input [20];
fgets( input, 20, stdin );
reverse ( input );
return 0;
}输入:
John . Johnes输出:
senhoJhttps://stackoverflow.com/questions/26818579
复制相似问题