在不计算空格的情况下查找字符串的长度

Find Length of string without counting spaces

我正在编写程序来查找用户输入的字符串的长度。一切正常,但程序也计算空间。那么,如何在不计算空格的情况下找到字符串的长度?

  1. 使用正确的尺码类型
  2. *(p + x) === p[x] - 其中 p 是指针,x 是整型。你的两个功能完全一样。
  3. 使用有一定意义的名称string_array 信息量不大,绝对不表示它返回不带空格的字符串的长度。
  4. 不要使用 gets 函数,因为它非常危险。使用限制放置在字符串中的字符数的函数。例如fgets
size_t strlenNoSpaces(const char * restrict c)
{
    size_t length = 0;
    for(; *c; c++)
    {
        if(*c != ' ') length++;
    }
    return length;
}

int main()
{
    char string[30];
    size_t length, i;

    printf("Enter string: ");
    fgets(string, 29, stdin);

    length = strlen(string);
    printf("\nLength of string using strlen.\n");
    printf("Length of string %zu.\n", length);

    length = strlenNoSpaces(string);
    printf("\nLength of string not counting the spaces.\n");
    printf("Length of string %zu.\n", length);

    return 0;
}