c语言

C语言怎么清空前后空字符串

小亿
296
2023-12-07 09:23:26
栏目: 编程语言

在C语言中,可以使用以下方法清空字符串的前后空白字符:

  1. 使用isspace()函数判断字符是否为空白字符,可以处理空格、制表符、换行符等空白字符。
  2. 从字符串的开头开始,遍历字符,直到遇到第一个非空白字符,记录其位置。
  3. 从字符串的末尾开始,遍历字符,直到遇到第一个非空白字符,记录其位置。
  4. 根据记录的位置,将字符串截取为新的子字符串,即可得到清空前后空白字符的字符串。

下面是一个示例代码:

#include <stdio.h>
#include <string.h>
#include <ctype.h>

char* trim(char* str) {
    size_t len = strlen(str);
    size_t start = 0, end = len - 1;
    
    // 从开头找到第一个非空白字符的位置
    while (isspace(str[start])) {
        start++;
    }
    
    // 从末尾找到第一个非空白字符的位置
    while (end > start && isspace(str[end])) {
        end--;
    }
    
    // 截取子字符串
    memmove(str, str + start, end - start + 1);
    str[end - start + 1] = '\0';
    
    return str;
}

int main() {
    char str[] = "   hello world    ";
    printf("Before: '%s'\n", str);
    printf("After: '%s'\n", trim(str));
    
    return 0;
}

运行结果如下:

Before: '   hello world    '
After: 'hello world'

0
看了该问题的人还看了