gpt4 book ai didi

c - 如何分割一个字符?

转载 作者:行者123 更新时间:2023-11-30 18:55:20 25 4
gpt4 key购买 nike

正在为大学做作业,我需要使用 strtok 获取用户对网格的输入,例如 b1 - d4 会将一 block 从 b1 移动到 d4。我目前正在使用 strtok 将 b1 - d4 拆分为 b1 的起始位置和 d4 的结束位置。现在我想将这个 b1 拆分为“b”和“1”,这样我就可以将 b 转换为整数 1(因为它以 0 开头)并将 1 转换为整数0 的整数。到目前为止,这是我的代码:

 {
char input[20];
char *start, *end;
int n = 0;

fgets(input, 20, stdin);
/* clear new line */
input[strlen(input)-1]='\0';
/* Extract first string */
if(strlen(input)==0) return 0;

start=strtok(input, DELIMS);
printf("%s\n", start);
n++;
while( n < 2){
end=strtok(NULL, DELIMS);
if (end == NULL) break; else n++;
printf("%s\n\n", end);
}

}

所以基本上它是获取输入并将其存储在 start 和 end 中,因此在移动 b1 - d4 的情况下,我将得到 *start = b1 *end = d4。我现在正在努力解决的部分是将 char *start 分成两个字符,或“b”和“1”的字符数组。我这一切都错了吗?提前致谢。

最佳答案

考虑到您的有效 token 的格式为 <single_letter><one_digit_number> ,您可以使用index来获取值。

例如,

start=strtok(input, DELIMS);

现在,如果 start 包含 A1 ,

  • start[0]A
  • start[1]1 [ASCII]

如果想获取对应的int start[1] 中存储的 ASCII 值,您可以简单地使用 int move = (start[1] - '0')这会给你 int int .

关于c - 如何分割一个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27983777/

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