用C语言实现一个formatStr
时间: 2024-05-02 22:22:37 浏览: 47
C#的String.Format 范例
,将一个字符串中的多个空格转化成一个空格。
答案如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char str[100];
printf("请输入字符串:\n");
fgets(str,sizeof(str),stdin); // 读取输入的字符串
int len = strlen(str); // 获取字符串长度
int cnt = 0; // 记录连续空格的个数
for(int i = 0;i < len;i++)
{
if(str[i] == ' ') // 如果遇到空格
{
cnt++; // 连续空格个数加1
if(cnt > 1) // 如果是多个连续空格
{
// 去掉该空格
for(int j = i + 1;j < len - cnt + 1;j++)
{
str[j-1] = str[j];
}
len--; // 字符串长度减1
i--; // 下标也减1,以便继续判断当前位置的字符
}
}
else // 如果不是空格
{
cnt = 0; // 连续空格个数清零
}
}
printf("格式化后的字符串为:%s",str);
return 0;
}
```
上述代码中,我们读入字符串后,依次遍历字符串中的每个字符,如果遇到空格,则判断是否是多个连续空格,如果是,则去掉该空格,否则继续寻找下一个字符。最后输出格式化后的字符串。
注意事项:本程序中使用了fgets函数读取输入的字符串,在编写该程序时需要确保输入的字符串长度不超过数组str的长度。同时,我们应该避免在字符串中间使用连续的空格,否则可能会影响格式化的效果。
阅读全文