c语言:有一个前中后都有空格的字符串,删除其前面的所有空格,中间和后面的空格不要删除
时间: 2023-12-11 15:03:50 浏览: 131
可以使用C语言中的指针和数组来删除前面的空格。具体实现如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = " Hello world! ";
char *ptr = str; // 定义指向字符串的指针
// 去掉前面的空格
while (*ptr == ' ') {
ptr++;
}
// 输出去掉前面空格后的字符串
printf("%s\n", ptr);
return 0;
}
```
运行结果为:
```
Hello world!
```
可以看到,输出的字符串去掉了前面的空格,而中间和后面的空格没有被删除。
相关问题
c语言实现:有一个前中后都有空格的字符串,删除其前面的所有空格,中间和后面的空格不要删除。
可以使用指针来实现字符串的操作,具体实现如下:
```c
#include <stdio.h>
#include <string.h>
void remove_front_spaces(char* str)
{
if (str == NULL) {
return;
}
char* p = str;
char* q = str;
// 找到第一个非空格字符
while (*p == ' ') {
p++;
}
// 移动字符串
while (*p != '\0') {
*q++ = *p++;
}
*q = '\0';
}
int main()
{
char str[] = " hello world ";
printf("Before: [%s]\n", str);
remove_front_spaces(str);
printf("After: [%s]\n", str);
return 0;
}
```
输出结果为:
```bash
Before: [ hello world ]
After: [hello world ]
```
在函数 `remove_front_spaces` 中,首先找到第一个非空格字符,然后将其后的字符串复制到原始字符串的开头。由于我们只删除前面的空格,所以中间和后面的空格不会被删除。最后,我们在原始字符串的末尾添加了一个空字符,以确保字符串的完整性。
用c语言实现:有一个前中后都有空格的字符串,删除其前面的所有空格,中间和后面的空格不要删除。
可以使用C语言中的字符串处理函数来实现这个功能,具体代码如下:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[] = " hello world ";
char *middle;
// 删除前面的空格
while (*str == ' ') {
str++;
}
// 获取中间部分
middle = strtok(str, " ");
printf("%s\n", middle); // 输出: "hello"
return 0;
}
```
这里使用了while循环来删除前面的空格,然后使用strtok()函数分割字符串,取得中间部分。注意,strtok()函数会修改原字符串,所以需要备份原字符串的指针。