如何用C语言中指针实现一个函数,该函数接收一个字符串作为输入,跳过其中的空格字符后返回一个新的字符串?
时间: 2024-10-22 14:28:38 浏览: 23
在C语言中,你可以通过定义一个函数并利用指针来达到这个目的。首先,你需要声明一个指向char类型的指针,用于存储输入字符串。然后,创建一个辅助函数来遍历输入字符串,跳过空格,并动态分配内存来存储新的字符串。这里是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 辅助函数,跳过空格并复制非空格字符到新字符串
void skipSpaces(char* src, char* dest) {
while (*src != '\0') { // 遍历直到遇到字符串结束符
if (*src != ' ') { // 如果不是空格
*dest = *src; // 复制字符到新位置
dest++; // 移动目标指针
}
src++; // 移动源指针
}
*dest = '\0'; // 在新字符串末尾添加结束符
}
// 接收字符串的函数,返回跳过空格的新字符串
char* skipSpacesInString(char* input) {
// 获取原字符串长度
int len = strlen(input);
// 动态分配足够空间的内存
char* newStr = (char*)malloc((len + 1) * sizeof(char)); // +1 for null terminator
// 调用辅助函数
skipSpaces(input, newStr);
return newStr;
}
int main() {
char str[] = "Hello World! This is a test.";
char* result = skipSpacesInString(str);
printf("New string without spaces: %s\n", result); // 输出: HelloWorld!Thisisatest.
free(result); // 释放内存
return 0;
}
阅读全文