#include <stdio.h> #include <string.h> void myStrCat(char * dest, char * src) { // 计算 dest 数组中的字符个数 int len = strlen(dest); // 将 src 数组中的字符依次拼接到 dest 数组的末尾 for (int i = 0; i < strlen(src); i++) { dest[len + i] = src[i]; } // 添加字符串结尾符 dest[len + strlen(src)] = '\0'; } int main() { char src[80] = ""; char dest[80] = ""; printf("请输入 dest 字符串: "); scanf("%s", dest); printf("请输入 src 字符串: "); scanf("%s", src); myStrCat(dest, src); printf("拼接后的字符串为: %s\n", dest); return 0; } 输入字符中有空格,请修改这段代码让输入空格字符不中断。给出c语言代码
时间: 2024-03-23 14:42:59 浏览: 55
可以使用fgets()函数来读取包含空格的字符串,并使用strtok()函数分割字符串,将分割后的子串依次拼接到目标字符串中。修改后的代码如下:
```c
#include <stdio.h>
#include <string.h>
void myStrCat(char * dest, char * src) {
// 计算 dest 数组中的字符个数
int len = strlen(dest);
// 将 src 数组中的字符依次拼接到 dest 数组的末尾
char *token = strtok(src, " ");
while (token != NULL) {
for (int i = 0; i < strlen(token); i++) {
dest[len + i] = token[i];
}
len += strlen(token);
token = strtok(NULL, " ");
}
// 添加字符串结尾符
dest[len] = '\0';
}
int main() {
char src[80] = "";
char dest[80] = "";
printf("请输入 dest 字符串: ");
fgets(dest, sizeof(dest), stdin);
dest[strcspn(dest, "\n")] = '\0'; // 去掉fgets()读取的换行符
printf("请输入 src 字符串: ");
fgets(src, sizeof(src), stdin);
src[strcspn(src, "\n")] = '\0'; // 去掉fgets()读取的换行符
myStrCat(dest, src);
printf("拼接后的字符串为: %s\n", dest);
return 0;
}
```
在这段代码中,我们使用fgets()函数读取输入的字符串,并使用strcspn()函数去掉fgets()读取的换行符。然后使用strtok()函数分割输入的字符串,将分割后的子串依次拼接到目标字符串中。最后输出拼接后的字符串。
阅读全文