将字符串数组输入到函数C ++

时间:2012-10-13 09:17:45

标签: c++

所以我输入一个数组和一个数字,它是一个名为" Write"的函数的数组长度。像这样:

string write (int n, char t[100])

为了保持简单,我只想在这个函数的帮助下写出数组的值,如下所示:

{
    int i;

    for (i=1;i<=n;i++) {
        if (t[i]=='a') {
        printf("%c" , t[i]);
        }
    }

    return 0;
}

int main()中我唯一做过的事就是scanfn变量给了n一个&#39; a&#39;数组中的字符串值。我调用了写函数string write(n,t[100]);这是整个&#34; main&#34; :

    int main()  
{  
    int i,n;   
    char t[100];  
    scanf("%i" ,&n);  

    for (i=1;i<=n;i++) {
            t[i]='a';
            }
string write (n,t[100]);  
return 0;  
} 

我的问题是为什么不运行这个简单的程序我可以输入n的值,但不会打印任何东西?我必须遗漏一些声明或声称我不熟悉C ++的函数。

2 个答案:

答案 0 :(得分:1)

string write(n, t[100])是函数的原型(省略类型)。如果你想调用write,你需要做类似

的事情
int main()  
{  
    int i,n;   
    char t[100];  
    scanf("%i" ,&n);  

    for (i=1;i<=n;i++) {
            t[i]='a';
            }
write(n,t);  
return 0;  
}

t[100]传递给write函数会将字符串的第100个元素赋予您的函数,这不是您想要做的。要传递整个字符串,只需使用t

另一个错误是你说write返回一个字符串。但是在代码中return 0,您希望将编写原型修改为int write(int n, char t[100]);

答案 1 :(得分:1)

该行

string write (n,t[100]);  
main中的

未调用write函数 - 它定义了一个名为“{”的变量,其类型为string,由n组成}元素,每个元素都具有与t[100]相同的值(这本身就是一个错误,因为它是100个元素数组的第101个元素)。
要调用该函数,您应该写

write(n, t);

你真的应该得到一本关于C ++的不错的入门书 在这里有很好的清单,你应该把它作为你找到它们的第一个练习。