删除字符串s中的空格。c语言
时间: 2024-10-27 07:07:05 浏览: 73
在C语言中,删除字符串`s`中的所有空格,你需要创建一个新的字符串,并逐个字符地从原始字符串复制,遇到非空格字符就加入新字符串。这里是一个基本的实现示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 函数声明,用于删除字符串中的空格
size_t removeSpaces(char* str);
int main() {
char s[] = "03_14 去空格";
size_t len = strlen(s); // 获取原始字符串长度
// 调用函数并替换原字符串
size_t newLen = removeSpaces(s);
// 扩展新字符串
char newStr[newLen + 1]; // 确保有足够空间
strncpy(newStr, s, newLen); // 复制去掉空格的字符
newStr[newLen] = '\0'; // 结束字符串
printf("原字符串: %s\n", s);
printf("处理后的字符串: %s\n", newStr);
free(s); // 额外注意释放原始字符串内存
return 0;
}
// 删除空格的函数
size_t removeSpaces(char* str) {
char* p = str; // 指针从头开始
while (*p) { // 当字符串结束前
if (*p != ' ') { // 如果不是空格
*(p++) = *p; // 移动指针并将字符复制到新位置
} else {
p++; // 跳过空格
}
}
*p = '\0'; // 结束新字符串
return p - str; // 返回新字符串的长度
}
```
这个代码会输出处理后的字符串 "03_14去空格"。
阅读全文