因为字符串文字可以像这样初始化
char myString [] = "somestring";
能够使用像这样的函数似乎合乎逻辑
int stringLength ( char * str )
{
char * c2 = str;
while (*c2++);
return (c2-str);
}
然后像这样调用它
printf("%d",stringLength("somestring"));
但是,当我这样做时出现错误。
有没有什么方法可以将“something”
“转换”成适合输入函数的东西,或者我是否总是使用额外的一行,比如
char str [] = "somestring";
printf("%d",stringLength(str));
或者还有其他我应该一起做的事吗?
最佳答案
char myString [] = "somestring";
创建一个可修改的字符数组。
当你使用
printf("%d",stringLength("somestring"));
它类似于:
char const* temp = "somestring";
printf("%d",stringLength(temp));
这就是编译器不喜欢它的原因。
您可以更改函数以使用 char const*
作为参数,以便能够使用它。
int stringLength ( char const* str )
{
char const* c2 = str;
while (*c2++);
return (c2-str);
}
关于c - 如何将匿名字符串文字传递给函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29910063/