用c语言写一个字符串格式化函数,传参为原字符串与原字符串长度,要求将连续空格合并为一个,并返回格式化后字符串长度
时间: 2023-04-04 09:03:50 浏览: 107
好的,我可以回答这个问题。以下是一个用 C 语言编写的字符串格式化函数的示例:
```c
#include <stdio.h>
#include <string.h>
int format_string(char *str, int len) {
int i, j;
int space_count = 0;
int new_len = 0;
for (i = 0; i < len; i++) {
if (str[i] == ' ') {
space_count++;
} else {
if (space_count > 0) {
str[new_len++] = ' ';
space_count = 0;
}
str[new_len++] = str[i];
}
}
if (space_count > 0) {
str[new_len++] = ' ';
}
str[new_len] = '\0';
return new_len;
}
int main() {
char str[] = "This is a test string.";
int len = strlen(str);
int new_len = format_string(str, len);
printf("Formatted string: %s\n", str);
printf("New length: %d\n", new_len);
return 0;
}
```
这个函数的作用是将原字符串中的连续空格合并为一个,并返回格式化后字符串的长度。在这个示例中,我们使用了一个循环来遍历原字符串中的每个字符。如果当前字符是空格,我们就将空格计数器加一;否则,如果空格计数器大于零,就将一个空格添加到格式化后的字符串中,并将空格计数器重置为零。最后,我们在格式化后的字符串的末尾添加一个空字符,以表示字符串的结束。
阅读全文