实际上while(字符!='\ n'); \ n语法含义?

问题描述 投票:-4回答:2
#include<stdio.h>
int main(void) {
    char line[81],character;
    int c;
    c=0;
    printf("Enter Text.Press <Return> at end \n");
    do{
        character=getchar();
        line[c]=character;
        c++;

    }while(character !='\n');
    c=c-1;
    line[c]='\0';
    printf("\n%s\n",line);
}
c arrays string do-while
2个回答
1
投票

'\n'换行字符,我相信您已经知道。新行是与其他字符一样的字符,例如'a''b''c''\t'(制表符),空格' '等。

所以while(character !='\n')表示字符是不是换行符


1
投票

\n是换行符,通过按Enter / Return键来完成。

使用

do{
 ...
}while(character !='\n');

您有一个do-while循环,其条件为证明character中的字符是否为换行符,并在适当的输入之后附加。如果\ncharacter内部,则循环中断,并且不进行进一步的迭代。

请注意,因为它是一个do-while循环,所以循环的主体至少要经过一个遍历。

[概念

do{
    character=getchar();
    line[c]=character;
    c++;

}while(character !='\n');

是在每次演练时读取一个字符,并将其后的字符写入数组line的元素中,包括换行符。

请注意,在循环后附加\0

c=c-1;
line[c]='\0';

非常重要,因为此字符会终止正确的字符串!

还请注意,getchar()的返回值是int类型,以保存错误的EOF。您应该将character的类型更改为int,以后再验证该值以确保没有错误发生,这一点很重要。对于类型为int的对象,分配给数组没有问题,因为char相对于int


0
投票

'\ n'是换行符,它还指示字符串的结尾。在这种情况下,它正在检查是否到达字符串的末尾,在while(character!='\ n')条件下,它将执行循环直到到达字符串的末尾,并且这是一个do-while循环,do –部分将再次执行。

© www.soinside.com 2019 - 2024. All rights reserved.