c语言怎么去除空格

在C语言中,可以使用字符串处理函数来去除空格,下面是详细的步骤和小标题:

创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的汝城网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

去除字符串开头的空格

1、使用strspn函数确定字符串开头的空格数量。

2、使用memmove函数将开头的空格移动到字符串末尾。

#include 
#include 
#include 
void removeLeadingSpaces(char *str) {
    int count = 0;
    while (isspace((unsigned char)*str)) {
        count++;
        str++;
    }
    memmove(str, str + count, strlen(str + count) + 1);
}
int main() {
    char string[] = "   Hello World!";
    removeLeadingSpaces(string);
    printf("String after removing leading spaces: %s
", string);
    return 0;
}

去除字符串末尾的空格

1、使用strspn函数确定字符串末尾的空格数量。

2、使用memmove函数将末尾的空格移动到字符串开头。

3、使用memset函数将末尾的空字符设置为’’。

#include 
#include 
#include 
void removeTrailingSpaces(char *str) {
    int len = strlen(str);
    while (isspace((unsigned char)str[len 1])) {
        len;
    }
    memmove(str, str + len, strlen(str + len) + 1);
    memset(&str[len], '', sizeof(char) * (strlen(str) len + 1));
}
int main() {
    char string[] = "Hello World!   ";
    removeTrailingSpaces(string);
    printf("String after removing trailing spaces: %s
", string);
    return 0;
}

去除字符串中的连续空格(只保留一个空格)

1、使用两个指针,一个指向当前字符,一个指向下一个非空格字符。

2、如果当前字符和下一个非空格字符都是空格,跳过当前字符,否则,将当前字符复制到输出字符串中,并将指针向前移动一个位置,继续这个过程直到到达字符串末尾。

3、在输出字符串末尾添加一个空字符(‘0’)。

4、将输出字符串复制回原始字符串。

#include 
#include 
#include 
void removeConsecutiveSpaces(char *str) {
    char output[strlen(str) + 1]; // 创建输出字符串缓冲区,大小为原始字符串长度加1(用于存储空字符)
    int i = 0, j = 0; // 定义两个指针i和j分别指向当前字符和下一个非空格字符的位置
    while (*str != '') { // 遍历字符串直到遇到空字符为止
        if (isspace(*str)) { // 如果当前字符是空格,则跳过它,不将其复制到输出字符串中
            str++; // 移动指针到下一个字符的位置
            continue; // 继续下一次循环迭代,检查下一个字符是否是非空格字符
        } else if (isspace(*(str + 1))) { // 如果当前字符不是空格,但下一个字符是空格,则跳过它们,不将它们复制到输出字符串中
            i += 2; // 同时移动i和j指针两个位置,跳过当前字符和下一个空格字符的位置
        } else { // 如果当前字符和下一个字符都不是空格,则将当前字符复制到输出字符串中,并将指针向前移动一个位置
            output[j++] = *str++; // 复制当前字符到输出字符串中,并移动指针到下一个字符的位置
        }
    }
    output[j] = ''; // 在输出字符串末尾添加空字符('')表示结束符,防止发生数组越界错误
    strncpy(str, output, strlen(output)); // 将修改后的输出字符串复制回原始字符串中(从第一个字符开始覆盖)
}
int main() {
    char string[] = "Hello   World!   "; // 包含多个连续空格的示例字符串
    removeConsecutiveSpaces(string); // 调用函数去除连续空格并打印结果字符串
    printf("String after removing consecutive spaces: %s
", string); // 输出结果字符串:Hello World!   (最后一个空格被删除)
    return 0;
}

当前名称:c语言怎么去除空格
分享网址:http://www.mswzjz.cn/qtweb/news49/17699.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能