C 如何计算字符串中的字符数(如果没有占用所有空间)
我有一段代码:C 如何计算字符串中的字符数(如果没有占用所有空间),c,string,char,malloc,C,String,Char,Malloc,我有一段代码: char* input = malloc(sizeof(char)*100); scanf("%s", input); //let's say that the number of chars in "%s" is 5 如何计算输入的字符数(5)?我尝试使用sizeof(),但找不到解决方案 Edit(更好的解释):输入变量最多可以容纳100个字符,但假设我输入了终端“abcde”:那么它只容纳5个字符,其他95个字符不包含在内。我想计算“5”。您必须找到空终止符
char* input = malloc(sizeof(char)*100);
scanf("%s", input); //let's say that the number of chars in "%s" is 5
如何计算输入的字符数(5)?我尝试使用sizeof(),但找不到解决方案
Edit(更好的解释):输入变量最多可以容纳100个字符,但假设我输入了终端“abcde”:那么它只容纳5个字符,其他95个字符不包含在内。我想计算“5”。您必须找到空终止符
int i = 0;
while(input[i] != 0) {
++i;
}
//i marks the spot
但是是的,strlen()做得更好,因为它有一些改进/优化的搜索,因为它使用了word(16/32/64位)比较之类的东西。可能是
strlen()函数。
谢谢strlen()的提及,我只能考虑分配的空间,所以我完全忘记了该函数。也许你可以把它作为一个答案发布,这样我就可以投票并将它标记为已接受?你可以通过for
循环来完成,但是调用strlen()
更容易写和读。或者int
但是size\t