如何将一个char数组输入标记为一个char和一个字符串?

图灵042

我正在尝试要求用户输入3个字符。我想将第一个字符和最后两个字符彼此分开。因此,如果“ A13”是用户输入,我想将“ A”存储在单独的char中,将“ 13”存储在单独的char []中。

//initializations
char seatName[4], seatRowName, seatNumber[3];

printf("\n\nPick a seat (Row Seat) ");
scanf("%s", seatName);
seatRowName=seatName[0];
seatNumber=strchr(seatName, seatRowName);
//I get the "error: incompatible types in assignment" on the above line

样本输出:

选择一个座位(Row Seat):A13
// seatRowName = A,seatNumber = 13

加蒂·Ja那

使用以下代码:

seatRowName=seatName[0];
strcpy(seatNumber, &seatName[1]);  // strncpy if you want to be safe

如果您永远都不会改变seatName,也可以使用const char *seatNumber = &seatName[1];


为什么起作用:

             +0  +1  +2  +3
            +---+---+---+---+
   seatName | A | 1 | 3 | \0|
            +---+---+---+---+
             [0] [1] [2] [3]

在内存中,seatName将内容存储在连续的空间中。这种方法即使对于的输入也可以正常工作A3您应该提供其他完整性检查输入。

seatNumber=strchr(seatName, seatRowName);

我在上一行收到“错误:赋值中的不兼容类型”

strchr返回char *,类型seatNumberchar [3]由于RHS和LHS的类型不同,因此您遇到了以上错误。与许多流行语言不同,C它不允许这样做。

将苹果分配给橙子几乎总是不正确的。strcpy(A, B);而不是A = B在这种情况下会起作用。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将一个字符串数组存储到另一个字符串数组中?

如何将“$@”或数组连接到一个字符串

修改一个字符指针字符串数组(char * string[])

输入是一个字符串数组,输出是一个 ArrayList

在C中从char数组创建一个字符串

如何将多个数组和一个字符串组合成一个数组?

如何将一个字符串分成2个字符串

如何使char表达一个字符串?

如何将一个字符串转换为字符串数组?

如何减去一个SimpleDateFormat和一个字符串

将字符串文字的第一个字符分配给char数组将分配整个字符串文字

如何比较一个字符串和一个字符

如何将整数和字符串合并为一个字符串?

如何将字符串向量的最后一个字符大写?

如何将一个字符串插入另一个字符串?

如何将一个字符串值与另一个字符串值进行比较?

如何将一个字符串与另一个字符串匹配并为其返回 true?

swift:如何将一个字符串从textField分配给另一个字符串?

如何将一个哈希变成一个字符串?

如何将字符串中间的 2 个空格替换为 Dart 中的一个字符和一个空格?

如何将一个字符串值传递给COUNTIF?

Python如何将一个字符串分成几个阶段

熊猫:如何将行转换为一个字符串?

如何将下一个字符串分成几组?

如何将html内容转换为一个字符串

如何将字符串拆分为第一个字符和其余字符?

Swift:如何将一个字符串数组拆分为多个匹配值数组?

如何将一个字符数组(字符串)传递到链接列表(队列)

如何将多个输入行组合成一个字符串?