如何读取字符串直到输入结束,并读取行直到在C中找到\ n?

ha哈哈

我想在while循环中读取字符串,直到输入结束,但是我不知道如何。例如,输入为:

Car
Black car
White car

首先,我要扫描'car'并将其保存在数组中。然后,我想扫描“ Black car”并将其放进去,依此类推。

 while (scanf("%[^\n]", s)>0)

这仅读取一行,但是当我使用此代码时:

 while(scanf("%s", s) > 0)

它一个接一个地读,所以不会有“ Black car”,而是“ black”和“ car”。

您是否有想法同时满足这两个条件?

而且,我在链接列表中有两个节点:第一个是“ White car”,第二个是“ Car black”。我想按字母顺序对其进行排序。我想将'White car'的第一个字母'W'放入array1,并将'Car black'的第一个字母C'放入数组2。但是当我打印f array1时,它打印'W',但是当我想打印array2时,它写'CW'?当我打印一个->名称时,它会打印'White Car';当我打印两个->名称时,它会打印'Car black'。

void sort(Car**head){
Car*one;
Car*two;
Car*temp;
one= *head;
two= one->next;

int compare;
char array1[1]={0};
char array2[1]={0};

while(one->next){
    compare= 0;
    strncpy(array1, one->name, 1);
    strncpy(array2, two->name, 1); 

    printf("Array1: %s\n", array1);
    printf("Array2: %s\n", array2);

    printf("One name: %s\n", one->name);
    printf("Two name: %s\n", two->name);

    compare= strcmp(one->name, two->name);
    if(compare<0){
        temp = one;
        one = two;
        two= temp;
    }
    one = one->next;
    two = two->next;
}                           

}

来自莫斯科的弗拉德

使用标准的C函数fgets。例如

char s[N];
while ( fgets( s, sizeof( s ), stdin ) != NULL && s[0] != '\n' )
{
    //...
}

哪里N是一些整数值。

这是一个示范节目

#include <stdio.h>
#include <string.h>

int main(void) 
{
    enum { N = 100 };
    char s[N];

    while ( fgets( s, sizeof( s ), stdin ) != NULL && s[0] != '\n' )
    {
        s[ strcspn( s, "\n" ) ] = '\0';
        puts( s );
    }

    return 0;
}

如果进入

Car
Black car
White car

在最后一次输入后,再按一次Enter,则输出为

Car
Black car
White car

这个说法

s[ strcspn( s, "\n" ) ] = '\0';

用于'\n'从输入的字符串中排除换行符该字符可以通过函数附加到输入的字符串中fgets

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

按字符读取字符串,直到C / C ++行结束

来自分类Dev

按字符读取字符串,直到C / C ++行结束

来自分类Dev

如何读取直到新行'\ n'的数组?

来自分类Dev

从出现的第n个字符串开始读取,直到特定的字符串为止

来自分类Dev

从出现的第n个字符串开始读取,直到特定的字符串为止

来自分类Dev

读取字符串,直到换行

来自分类Dev

读取数据直到'\ n'

来自分类Dev

读取字符串直到标志 (C++)

来自分类Dev

C++:读取数值数据直到 \n

来自分类Dev

读取一个字符串,char[] 直到 C 行结束

来自分类Dev

QTextStream读取字符串,直到制表符

来自分类Dev

在没有 getline 的情况下,在 C++ 中读取字符串直到换行

来自分类Dev

从字符串中读取第n行

来自分类Dev

字节数组字符串直到'\ n'

来自分类Dev

从文件中读取字符串时,String.split不会与\ n分开

来自分类Dev

为什么从控制台读取字符串时scanf中的%n返回0

来自分类Dev

如何读取具有特定字符串的文件的最后 n 行?

来自分类Dev

读取行直到找到特定字符

来自分类Dev

读取haskell中的行,直到非空字符串

来自分类Dev

从输入文件中读取,直到字符串出现在 C++ 中

来自分类Dev

读取带空格的字符串,直到在C中换行

来自分类Dev

删除字符串模板,直到大字符串中的'\ n'-Java

来自分类Dev

读取串行输入,直到控制字符指示消息结束

来自分类Dev

如何读取字符,直到一个char字符?

来自分类Dev

如何在字符串中找到N的第二个位置

来自分类Dev

在C中从文件读取字符串输入

来自分类Dev

如何读取n个字符串并将其存储到c中的指针数组中

来自分类Dev

如何从txt文件读取n行?n作为输入

来自分类Dev

提取第n个字符直到R中的字符串结尾

Related 相关文章

  1. 1

    按字符读取字符串,直到C / C ++行结束

  2. 2

    按字符读取字符串,直到C / C ++行结束

  3. 3

    如何读取直到新行'\ n'的数组?

  4. 4

    从出现的第n个字符串开始读取,直到特定的字符串为止

  5. 5

    从出现的第n个字符串开始读取,直到特定的字符串为止

  6. 6

    读取字符串,直到换行

  7. 7

    读取数据直到'\ n'

  8. 8

    读取字符串直到标志 (C++)

  9. 9

    C++:读取数值数据直到 \n

  10. 10

    读取一个字符串,char[] 直到 C 行结束

  11. 11

    QTextStream读取字符串,直到制表符

  12. 12

    在没有 getline 的情况下,在 C++ 中读取字符串直到换行

  13. 13

    从字符串中读取第n行

  14. 14

    字节数组字符串直到'\ n'

  15. 15

    从文件中读取字符串时,String.split不会与\ n分开

  16. 16

    为什么从控制台读取字符串时scanf中的%n返回0

  17. 17

    如何读取具有特定字符串的文件的最后 n 行?

  18. 18

    读取行直到找到特定字符

  19. 19

    读取haskell中的行,直到非空字符串

  20. 20

    从输入文件中读取,直到字符串出现在 C++ 中

  21. 21

    读取带空格的字符串,直到在C中换行

  22. 22

    删除字符串模板,直到大字符串中的'\ n'-Java

  23. 23

    读取串行输入,直到控制字符指示消息结束

  24. 24

    如何读取字符,直到一个char字符?

  25. 25

    如何在字符串中找到N的第二个位置

  26. 26

    在C中从文件读取字符串输入

  27. 27

    如何读取n个字符串并将其存储到c中的指针数组中

  28. 28

    如何从txt文件读取n行?n作为输入

  29. 29

    提取第n个字符直到R中的字符串结尾

热门标签

归档