-1
#include "stdio.h"
#include "conio.h"
int main()
{
    char str1[]=asc(20);
    char str2[]="SpApp|";
    strcat(str1,str2);  
    printf(str1);
    getch();  
}

我想编写一个先转换intASCII代码的程序,然后将其连接SpApp|并打印c程序中的值。

虽然printf("%c",20);也提供了ASCII转换,但我不知道如何将它保存在另一个中char str1[],然后将它与char str2[];

4

4 回答 4

1

用于snprintf()创建包含附加字符串的缓冲区int

char str2[32];
snprintf(str2, sizeof(str2), "SpApp|%d", 20);
于 2012-12-14T09:21:38.837 回答
0

asc函数返回单个字符,而不是字符串,因此数组str1将不包含终止特殊字符'\0'

您必须str1正确初始化:

char str1[] = { asc(20), '\0' };

第二问题是目标字符串str2不够大,无法同时包含您开始的字符串要添加到其中的额外字符串。您需要使其足够大以包含两个字符串:

char str2[16] = "...";
于 2012-12-14T09:21:54.193 回答
0

尝试使用 str1 和 str2 的指针,如下所示:

char *str1 = "string1";
char *str2 = "string2";
于 2012-12-14T09:22:10.833 回答
0
#include "stdio.h"

int main() {
    char a[MAX_BUFFER];
    char res[MAX_BUFFER];

    itoa(20, a, 10);
    sprintf(res, "SpApp|%s", a);
    printf("%s", res);
}
于 2012-12-14T09:25:29.253 回答