📅  最后修改于: 2023-12-03 15:13:46.364000             🧑  作者: Mango
C语言是一种广泛使用的高级程序设计语言,它常被用来开发操作系统、嵌入式系统、游戏等等各种应用程序。在C语言中,我们可以使用指针来处理内存、数组来处理数据、结构体来组织数据等等。C语言还提供了丰富的标准库函数,用于处理各种任务。
在C语言编程中,我们有时需要从用户输入的字符串中去掉空格。假设我们有一个输入字符串 " hello world ",我们需要将其处理成 "hello world"。如何实现这个功能?
我们可以使用C语言中的字符串处理函数来去掉字符串中的空格。具体来说,我们需要使用头文件 string.h
中的函数 strtok()
和 strcat()
。
首先,我们需要将输入字符串用空格作为分隔符,分割成若干个单词(去掉空格)。可以通过以下代码实现:
char input[] = " hello world ";
char* tokens = strtok(input, " ");
上述代码会将字符串 " hello world " 分割成两个单词 "hello" 和 "world",并且返回第一个单词 "hello" 的指针。strtok()
函数的第一个参数是要分割的字符串,第二个参数是分隔符。可以多次调用 strtok()
函数,每次返回下一个单词。
然后,我们需要将每个单词拼接起来,得到最终的字符串。可以通过以下代码实现:
char result[100] = {0};
while (tokens != NULL) {
strcat(result, tokens);
tokens = strtok(NULL, " ");
}
上述代码通过 strcat()
函数将每个单词拼接起来,存储到 result
数组中。strcat()
函数的第一个参数是要拼接的目标字符串,第二个参数是要拼接的源字符串。
最后,我们得到的 result
就是去掉空格的字符串 "helloworld"。完整代码如下:
#include <stdio.h>
#include <string.h>
int main() {
char input[] = " hello world ";
char* tokens = strtok(input, " ");
char result[100] = {0};
while (tokens != NULL) {
strcat(result, tokens);
tokens = strtok(NULL, " ");
}
printf("%s\n", result);
return 0;
}
strtok()
函数时,注意第一个参数是要保持不变,以便多次调用。strcat()
函数时,注意要确保 result
数组足够大,不会发生溢出。