c语言 - 尝试使用 '.' 终止 while 循环



我试图编写一个程序来反转用户输入并将其打印回他们,以下代码运行良好:

#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 

我真的是个新手,但如果有任何帮助,我将不胜感激。

但我希望程序只打印'.' 之前的所有内容

如果您得到'.',那么只需从while循环中断即可。并用终止char数组。


#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]=''; //Terminate the char array with 
    printf("%s n", rev);
    return 0;
}
int main () {
    char input [20];
    fgets( input, 20, stdin );
    reverse ( input );
    return 0; 
}

输入:

John . Johnes

输出:

senhoJ

最新更新