[英]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.