打印带索引的char数组时出现错误的原因

时间:2017-03-19 06:58:48

标签: c

driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
driver.FindElement(By.LinkText("z")).Click;
driver.FindElement(By.LinkText("xxxxx")).Click();

我想问一下打印此代码时出现错误的原因,但如果我没有使用索引

#include <stdio.h>

char name[99];

int main(){
    int n = 5;
    for(int i = 0; i < n ; i++){
        scanf("%s", &name[i]);
        //fflush(stdin); gets(&nama[i]);
    }

 for(int i = 0; i < n ; i++){
    printf("Print %s", name[i]);
    }   

}

可以在没有索引的情况下打印。

1 个答案:

答案 0 :(得分:2)

name是单个字符的数组,而不是字符串。每个scanf正在读取下一个位置的一个数组。在您打印的循环中,您将单个字符放入%s使用的指针中(请注意,char是C中的整数类型,而不是像许多语言一样的长度为1的字符串)。

#include <stdio.h>

// Two dimensional char array
char name[5][99];

int main(){
    int n = 5;
    for(int i = 0; i < n ; i++){
        scanf("%s", name[i]); // Decay to char*
        //fflush(stdin); gets(&nama[i]);
    }

 for(int i = 0; i < n ; i++){
    printf("Print %s", name[i]); // Decay to char*
    }   

}