【发布时间】:2018-03-24 17:30:41
【问题描述】:
我只想从输入中读取“c4 d5”形式的字符串并保存两个子字符串:
str1 = "c4"
str2 = "d5"
我试过了:
char action[5];
char str1[2];
char str2[2];
scanf("%s", action);
strncpy(str1, &action[0], 2);
strncpy(str2, &action[3], 2);
但它给了我奇怪的行为......
在我学习 c 的同时,我正在寻找仅使用 char * 和仅使用 char[](在输入和输出中)的两种解决方案。
【问题讨论】:
-
在你知道它的作用之前不要使用 strncpy()。
-
请始终添加你得到的输出。
-
scanf将在空格字符处停止读取。所以action包含“c4”。 -
输出有点奇怪,它取决于我的代码中的其他因素,第一次是这样的:输入:ciaoo 输出:ci ooci
-
strncpy将不会在您的字符串中添加终止 0。而且您的目标字符串也不能包含多个字符(加一个位置用于上述终止 0)。加起来不太好。