关于使用 scanf 输入字符串

发布于 科技 2024-08-21
6个回答
  1. 匿名用户2024-02-01

    s 和 &s 都表示地址并具有相等的值。

    S 与 &s 不同,其中 s 是 char *,s 是 char (*10),后者是指向包含 10 个字符的行的指针。

    在 scanf("%s",&s);在语句中,&s 有一个隐式强制转换,它等效于 scanf("%s",(char *)s);

  2. 匿名用户2024-01-31

    它对结果没有影响,这样使用,当您按 f5 进行调试时,结果不会闪烁。

  3. 匿名用户2024-01-30

    scanf("设置字符串格式"、地址表);

    有三种类型的格式化字符串:

    1) 格式说明符,%c,%d...。

    2. 空格:空格字符将导致 scanf() 函数在读取操作期间从输入中省略一个或多个空格字符。

    3. 非空格字符:非空格字符会导致 scanf() 函数在读取时消除与非空格字符相同的字符。

    所以,%c前面必须有一个空格,否则系统会在变量中输入另一个值后读取你输入的回车符,导致无限循环。 当然,如果 scanf("%c", &varname) 是第一个读取语句,因此不需要空格。

  4. 匿名用户2024-01-29

    scanf 无法输入字符串:

    由于 scanf 函数在遇到空格、换行符或制表符时将立即结束读取,因此键入 hello jane,最后只读取 jane。

    如果发现第一个输入的内容,scanf 不会全部读取,只读取第一个空格之前的内容,即 John,后续的 Wilson 会暂时存储在缓冲区中,当第二个 scanf 出现时,Wilson 会自动存储在第二个 scanf 函数的变量中, 也就是说,name2=wilson。

    因此,在打印 name2 值的末尾,它显示 wilson。 当我们输入 C Enter 时,scanf 从缓冲区中获取 C 并将其交给 CH,但返回值仍在缓冲区中,并没有将其带走,当我们输入字符串时,它被交给 CH1,因为返回值也是一个字符。

    如何使scanf在输入后不换行

    输入字符时:当 scanf 中没有空格时:不要有空格,也不要换行,因为空格和换行符是字符。

    因此,只需输入字符,当 scanf 中有空格时:您可以有一个没有换行符的空格,当您输入数字(浮点数)时:您可以换行或空格,因为它们不是数字。

    当 scanf 中没有逗号时:没有逗号,否则第二个数字将变为 0,当 scanf: 中有逗号时:可以有逗号。

  5. 匿名用户2024-01-28

    s 和 &s 都表示地址并具有相等的值。

    S 与 &s 不同,其中 s 是 char *,s 是 char (*10),后者是指向包含 10 个字符的行的指针。

    在 scanf("%s",&s);在语句中,&s 有一个隐式强制转换,它等效于 scanf("%s",(char *)s);

  6. 匿名用户2024-01-27

    不。 Scanf() 是 C 语言中的输入函数。 表单: int scanf(const char * restrict format,..

    字符串的格式包含 s 中的 format 指令,用于读取字符序列,后跟一个 null 字节,并遇到空格字符(t、空格等)以完成读取。

    Scanf 在输入字符串时不会收到空格,按 Enter 和 Tab 键,则认为输入结束。 scanf 函数直接从输入缓冲区获取数据,而不是从键盘(即终端)缓冲区获取数据。 如果读取以 Carriage return() 结尾,它将一起被读入输入流缓冲区,因此在第一次接受输入后,该字符将被留下。

相关回答
12个回答2024-08-21

使用字符串就是使用它的第一个地址(有时和长度,实际上,拥有第一个地址就足够了),无论字符串有多长。 最明显的例子是,当一个(常量)字符串作为参数及其第一个地址传递时。 所以你的比较只是地址的比较。

12个回答2024-08-21

不。。。 你还没有弄清楚 C 语言中字符串的含义。 >>>More

10个回答2024-08-21

字符串"the result is %d"这是存在于记忆中的全部内容。 >>>More

13个回答2024-08-21

2楼正确解,当然也可以使用cstring类中的getat函数来获取。

9个回答2024-08-21

#include

using namespace std; >>>More