0
// getline : empty string array and max length as input
// stores input stream to array and return its length

#include<stdio.h>
#define LENGTH 100
int getline1(char* , int );
int main(){
    char *s;
    int i;
    s=(char*)malloc(LENGTH*sizeof(char));
    i=getline1(s,LENGTH);
    printf("%s %d",s,i);
    return 0;
}

int getline1(char *s, int lim){

    int c ,i;
    i = 0;
    printf("%u",s);
    while(--lim >= 0 && (c=getchar()) != EOF && c = '\n'){
        *(s+i)=c; //error : lvalue required
        i++;
    }
    if(c=='\n'){
        *(s+i)=c;
        i++;
    }
    *(s+i)='\0';
    return i;
}

上記の行に記載されているエラーが表示されますが、何が間違っているのか誰でもわかります。arrays.getline を使用すると、コードは正常に動作します: 空の文字列配列と、入力が入力ストリームを配列に格納し、その長さを返すための最大長

4

1 に答える 1

0

式に値を割り当てることはできません*(s+i)。当然のことながら、間接参照しているので、その位置(定数)に値を残します。

s[i]代わりに使用してみてください。

于 2013-03-09T06:28:57.413 に答える