C 语言去除空格

今天我去应聘,面试我的大佬考了我一道题,但是我没有做出来,太丢人了。
他的要求是 C 语言写出一个去除空格的函数。
应该自我反省并做笔记。
查了一下资料,多次实验,给出的程序如下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<stdlib.h>
#include<stdio.h>
#include<string.h>

void trim(char *strIn, char *strOut) {
int i, j ;
i = 0;
j = strlen(strIn) - 1;
while (strIn[i] == '')
++i;
while (strIn[j] == ' ')
--j;
strncpy(strOut, strIn + i , j - i + 1);
strOut[j - i + 1] = '\0';
}

void main() {
char *strIn = " ak kl p ";
char strOut[100];
trim(strIn, strOut);
printf("*%s*\n", strOut);
system("pause");
}

还可以用下面的函数去除空格

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void trim(char *strIn, char *strOut) {
char *start, *end, *temp;// 定义去除空格后字符串的头尾指针和遍历指针
temp = strIn;
while (*temp == '') {
++temp;
}
start = temp; // 求得头指针
temp = strIn + strlen(strIn) - 1; // 得到原字符串最后一个字符的指针 (不是'\0')
printf("%c\n", *temp);
while (*temp == ' ') {
--temp;
}
end = temp; // 求得尾指针
for (strIn = start; strIn <= end; ) {
*strOut++ = *strIn++;
}
*strOut = '\0';
}

程序代码转载自:daxueit.com

基础学的不扎实,期望以后能够努力学习。

浏览笔记

https://stackoverflow.com/questions/1726302/removing-spaces-from-a-string-in-c
https://www.geeksforgeeks.org/remove-spaces-from-a-given-string/

后记

我文笔并不是很好,如果用 WordPress 博客程序写我估计会逻辑混乱,排版糟糕。
哪位巨巨指点一下让我写的更好,感激不尽。

坚持原创技术分享,您的支持将鼓励我继续创作!