C中astring中非空白字符的第一个索引

时间:2017-04-24 16:06:04

标签: c strchr

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

3 个答案:

答案 0 :(得分:2)

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

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是第一个非空白字符的索引:

答案 1 :(得分:1)

使用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);
}

答案 2 :(得分:0)

旧学校:

const char *ptr;
for (ptr=str; *ptr && ((unsigned char)*ptr) <= ' '; ++ptr);
return (*ptr ? ptr-str : -1);