题目:
现在有一个字符串,编写一个函数能够删除字符串中的空格字符。
思路:
删除字符串的空格,需要一个指针point来遍历字符串,一个指针LinkPoint来指向需要添加值的地方。当第一次找到空格时,将该位置point赋值给LinkPoint。然后每找到一次非空格的值就赋给LinkPoint位置,之后LinkPoint向后移动一位,指向下一次非空格值的赋值位置。
注意点:
- 对于字符串,需要注意' \0 ',' \0 '是非空格值,但它是结束符,所以要特殊处理。
- 对于字符串,操作之后要在最后手动加上' \0 '结束符
代码实现如下:
#include <stdio.h>
#include <string.h>
void StrDelBlank(char* str){
char* point = str;//数据遍历位置
char* LinkPoint = str;//链接位置
char FirstKongGeFlag = 0;//第一次找到空格
char DebugI = 0;
//1.判断是否传入参数有误
if(point == NULL){
printf("err:str is NULL \n");
return;
}else{
printf("Head Address = %#x\n",point);
}
//2.遍历
while(*point!='\0'){
printf("Debug:%d\n",DebugI++);
printf("Debug:point = %#x\n",point);
printf("Debug:LinkPoint = %#x\n",LinkPoint);
printf("Debug:Now char is %c\n",*point);
//第一次发现空格