c - 尝试将字符追加到字符串时出现警告 C4047 和 C4024

标签 c string char strcat

我有一个代码想要将英文字母表中的所有后者放入一个字符串中,问题是,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);
    }
}

最佳答案

标准 C 函数 strcat 处理字符串。因此,如果您确实想使用函数 strcat,那么循环可能看起来像

void makeABC( char abc[NUM_ABC_LET] )
{
    char letter[] = "a";
    for ( ; letter[0] <= 'z'; letter[0]++ )
    {
        strcat( abc, letter );
    }
}

关于c - 尝试将字符追加到字符串时出现警告 C4047 和 C4024,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29059735/

相关文章:

c - gcc 编译器报告警告,但 a.out 工作顺利,否则

c - _超出最小参数数量的通用参数

c - 反转字符串的顺序

arrays - Swift:检测字符串的首字母何时不等于特定字符?

c - 将字符串拆分为两个整数

c - 为什么编译汇编时出现奇数操作数错误?

PHP多行,连接字符串

java - 我的字符切换软件返回相同的答案?

C --- 删除字符串中的所有多余空格,不包括指定字符之间的字符

我们可以将格式说明符字符串的地址传递给 printf