设计函数,其功能描述如下 void trim_left(char myData[]) 将存储字符串的数组 myData[](以’\0’结尾),左边的空格、’\n’,’\r’ 字符去除 但单词与单词之间的空格回车换行不去除。 剩下的数据要依次平移到最左边。
时间: 2024-05-15 11:17:22 浏览: 63
这个问题属于编程问题,可以回答。以下是一个可能的解决方案:
```c++
void trim_left(char myData[]) {
int i = 0, j = 0;
while(myData[i] != '\0') {
if(myData[i] != ' ' && myData[i] != '\n' && myData[i] != '\r') {
if(i != j) {
myData[j] = myData[i];
}
j++;
}
i++;
}
myData[j] = '\0';
}
```
这个函数通过两个指针 i 和 j 来遍历数组,将不是空格、回车、换行的字符复制到左边,同时过滤掉左边的空格、回车、换行字符。最后在数组末尾添加一个空字符,表示字符串结束。可以通过以下代码测试这个函数:
```c++
#include <stdio.h>
#include <string.h>
void trim_left(char myData[]) {
// implementation goes here
}
int main() {
char myData[] = " \n Hello, \r\n world! \r\n";
trim_left(myData);
printf("%s\n", myData); // "Hello, \r\n world! \r\n"
return 0;
}
```
阅读全文