过去两个小时我一直挂在这上面,这真的让我很恼火。我正在使用标准C,尝试打印char数组元素。
以下是一个可行的片段(打印整个数组),
CreditCard validate_card(long long n) {
CreditCard cc; // specify new credit card
cc.n = n; // specify card num as passed
cc.valid = false; // initialize as invalid
cc.type = AEX; // initialize at american express
bool valid;
char s[20];
sprintf( s, "%d", n ); // convert credit card number into char array
printf("%s\n", s);
return cc;
}
以下代码段不起作用,
CreditCard validate_card(long long n) {
CreditCard cc; // specify new credit card
cc.n = n; // specify card num as passed
cc.valid = false; // initialize as invalid
cc.type = AEX; // initialize at american express
bool valid;
char s[20];
sprintf( s, "%d", n ); // convert credit card number into char array
printf("%s\n", s[0]);
return cc;
}
就此而言,如果有人也可以向我解释如何将char数组元素连接到char指针,我将不胜感激。
答案 0 :(得分:12)
使用此行时。
printf("%s\n", s[0]);
编译器应该打印一些关于格式字符串%s
和相应参数s[0]
不匹配的警告。
s[0]
的类型为char
,而不是char*
。
你的意图是什么?
如果您只想打印一个字符,请使用:
printf("%c\n", s[0]);
如果要打印整个字符数组,请使用:
printf("%s\n", s);
答案 1 :(得分:2)
您需要替换以下行
printf("%s\n", s[0]);
与
printf("%c\n", s[0]);
打印1个字符。
要逐个打印所有字符,请使用循环。
答案 2 :(得分:1)