我在使用字符串方面遇到了一些未知的问题它只在这种算法的实例中发生:
来源c

#include <stdio.h>
#include <string.h>
main()
{
    int cur, max;
    char ast[32];
    printf("Enter the triangle's size: ");
    scanf("%d", &max);
    for(cur = 1; cur <= max; cur++)
    {
        strcat(ast, "*");
        if(cur == 1)
        {
            printf("\n");
        }
        printf("%s\n", ast);
    }
    getch();
}

发生这种情况:
概述:用星号(*)创建三角形的程序
输入的大小。
输入三角形的大小:5
??Z☼]vYⁿbv░░*@*
??Z☼]vYⁿbv░░*@**
??Z☼]vYⁿbv░░*@*
??Z☼]vYⁿbv░░*@**
??Z☼]vYⁿbv░░*@*
应该是这样的:
输入三角形大小:5
*

**

***

****

*****

我不知道为什么。有人能帮忙吗?:)

最佳答案

字符串ast未初始化,因此它将包含垃圾,您可以将其附加到垃圾中。
首先初始化它-您需要一个以零结尾的字符串,将第一个字符设置为'\0'

关于c - 烦人的strcat()输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21215771/

10-13 03:58