0

如何获取字符串中第一个非空白字符的索引。例如对于字符串" #$%abcd",我希望获得索引 3 的#.

4

3 回答 3

2

用于strspn()查找空白的长度,然后跳过它。

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

const char whitespace[] = " \f\n\r\t\v";
char *str = "    Hello World!";

void main() {
    char *stripped = str + strspn(str, whitespace);
    printf("Stripped msg: '%s'", stripped);
}
于 2017-04-24T16:19:02.963 回答
1

为什么不编码而不是包含其他库:
这是一个起点:

int main () 
{
    char s[] = "   #$%abcd\0";
    size_t i = 0;
    while(s[i] == ' ' || s[i] == '\t'|| s[i] == '\n' || s[i] == '\r' || s[i] == '\f' || s[i] == '\v')
    {
        ++i;
    }
    return i;
}

i是第一个非空白字符的索引:

于 2017-04-24T16:35:11.937 回答
0

老套:

const char *ptr;
for (ptr=str; *ptr && ((unsigned char)*ptr) <= ' '; ++ptr);
return (*ptr ? ptr-str : -1);
于 2017-04-24T16:44:26.897 回答