【发布时间】:2015-03-15 10:46:23
【问题描述】:
我有一个代码想要将英文字母表中的所有后者放入一个字符串中,问题是,Visual Studio 给了我这个:警告
warning C4047: 'function' : 'const char *' differs in levels of indirection from 'char'
还有这个:警告 2
warning C4024: 'strcat' : different types for formal and actual parameter 2
这是代码,请告诉我它有什么问题无法正确编译。
#include <stdio.h>
#include <string.h>
#define NUM_ABC_LET 27
void makeABC(char abc[NUM_ABC_LET]);
int main()
{
char abcString[NUM_ABC_LET] = "";
makeABC(abcString);
puts(abcString);
return (0);
}
void makeABC(char abc[NUM_ABC_LET])
{
char letter;
for (letter = 'a'; letter <= 'z'; letter++)
{
strcat(abc, letter);
}
}
【问题讨论】:
-
你不觉得
char和char *是不同的类型吗? -
strcat()需要两个char指针,而不是char指针和char。 -
ASCII 字母只有 25 个字母。
-
@alk 其实有 26 个,第 27 个是空字符。
-
@zenith:胡,你是对的。顺便说一句,我知道
0-terminator,但我只是算错了...... :-}