用指针的方法删去字符串首尾的空格
时间: 2024-02-25 11:56:51 浏览: 105
字符串去掉空格
以下是一个使用指针的方法实现删除字符串首尾空格的函数代码:
```c
void removeSpaces(char* str) {
char* p1 = str; // 定义指向字符串开始的指针
char* p2 = str + strlen(str) - 1; // 定义指向字符串末尾的指针
// 移动 p1 指针,将非空格字符移到字符串开始位置,并向后移动
while (*p1 == ' ') {
p1++;
}
// 移动 p2 指针,将非空格字符移到字符串末尾位置,并向前移动
while (*p2 == ' ') {
p2--;
}
// 将非空格字符移动到字符串开始位置
while (p1 <= p2) {
*str = *p1;
str++;
p1++;
}
*str = '\0'; // 在结束处添加字符串结束符
}
```
在这个函数中,我们定义了两个指针p1和p2,p1指向字符串的开始位置,p2指向字符串的末尾位置,然后分别移动它们的位置,将非空格字符移动到字符串的开始和末尾位置。最后,我们将移动后的字符复制到原始字符串的开始位置,并在字符串的末尾添加字符串结束符'\0'。
使用这个函数,可以很方便地删除字符串首尾空格。例如:
```c
char str[] = " This is a string with spaces. ";
removeSpaces(str);
printf("%s", str); // 输出 "This is a string with spaces."
```
阅读全文