[英]error - subscripted value is neither array nor pointer nor vector
我在使用函数反转字符串时遇到问题。 这是我的代码:
#include<stdio.h>
int str_length(char lang);
int main()
{
char language[100];
int string_length;
while(1==scanf("%[^\n]", language))
{
string_length=str_length(language);
}
int i;
for(i=string_length; i>=0; i--)
{
printf("%c\n", language[i]);
}
return 0;
}
int str_length(char lang)
{
int i;
for(i=0; lang[i]!='\0'; i++)
{
i++;
}
return i;
}
与标题相同的错误显示在“ for(i = 0; lang [i]!='\\ 0'; i ++)”行中。
请帮助我理解问题。
您的函数str_length()
期望使用char
作为参数,但是您在调用中将其传递给char *
(指向字符串的指针)。 因此,必须在函数参数中使用指针符号或数组。 喜欢
int str_length(char lang[])
{
//code
}
要么
int str_length(char *lang)
{
//code
}
您需要将函数定义更改为
int str_length(char lang)
...
至
int str_length(char *lang)
问题是lang
是char
变量,因此无法像lang[i]
一样进行访问。 您打算将其作为数组或指针。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.