gpt4 book ai didi

c - 使用 scanf 和 '%d' 时如何区分 int 和 char

转载 作者:太空宇宙 更新时间:2023-11-04 08:16:47 26 4
gpt4 key购买 nike

我正在编写一个程序,将字符串中的字母按字母表中的某个方向旋转。它接受一个整数的初始输入,我称之为 N,然后使用该整数作为每个字符将在字母表中移动的字母数。正整数向字母表右侧移动,负整数向左移动。例如,如果输入是:

-2 cdefg

输出将是

abcde

为此,我需要区分常规字母字符和整数以获得初始 N。我试过将 scanf() 与 %d 和 isalpha() 函数以及 %c 和 isdigit() 函数一起使用,但两者似乎对我来说都有障碍。澄清一下,我只是在使用初始变量 N 时遇到了问题。我不知道如何区分整数之间的“m”输入。据我了解,它会为 N 存储“m”的 ASCII 值。

最佳答案

  1. 读入整行文本并将其存储在一个数组中。您可以使用 fgets或者——如果你有——getline为此。
  2. 然后使用 strtol 将该行的第一个“单词”转换为数字.它会告诉您它停止解析的位置 end
  3. 只要 end 指针取消对空白的引用(您可以通过 isspace 检查)。
  4. 现在您位于需要旋转的第一个角色的位置。一直进行到字符串末尾。

关于c - 使用 scanf 和 '%d' 时如何区分 int 和 char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35355629/

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