如何获取字符串中第一个非空白字符的索引。
例如,对于字符串" #$%abcd"
,我希望获得#
的索引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);