gpt4 book ai didi

c - 如何在 C 中正确地 'printf' 一个整数和一个字符串?

转载 作者:太空狗 更新时间:2023-10-29 16:29:20 25 4
gpt4 key购买 nike

我有以下代码:

char *s1, *s2;
char str[10];

printf("Type a string: ");
scanf("%s", str);

s1 = &str[0];
s2 = &str[2];

printf("%s\n", s1);
printf("%s\n", s2);

当我运行代码时,输​​入“A 1”如下:

Type a string: A 1

我得到了以下结果:

A
�<�

我试图将第一个字符作为字符串读取,将第三个字符作为整数读取,然后将它们打印在屏幕上。第一个字符总是有效,但之后屏幕只会显示随机内容....我应该如何解决它?

最佳答案

您走在正确的轨道上。这是更正后的版本:

char str[10];
int n;

printf("type a string: ");
scanf("%s %d", str, &n);

printf("%s\n", str);
printf("%d\n", n);

让我们谈谈这些变化:

  1. 分配一个 int (n) 来存储你的号码
  2. 告诉 scanf 先读入一个字符串,然后读入一个数字(%d 表示数字,正如您已经从 printf 中知道的那样/li>

这就是它的全部内容。您的代码仍然有点危险,因为任何超过 9 个字符的用户输入都会溢出 str 并开始践踏您的堆栈。

关于c - 如何在 C 中正确地 'printf' 一个整数和一个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11732402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com