【发布时间】:2016-01-14 10:53:44
【问题描述】:
我需要将数字转换为字符串。我是经销商,向玩家分发卡片。牌组包含 40 张牌。四颗种子。
#include <stdio.h>
#include <conio.h>
#include <string.h>
char *convertNum(int a); //initialization function
void main(){
char *car=convertNum(30);
printf(" number to convert 30 : %s", car);
getch();
}
char *convertNum(int a){
char *seed, *value;
switch ((a-1)/10){
case 0: seed="C"; break;
case 1: seed="Q"; break;
case 2: seed="F"; break;
case 3: seed="P"; break;
default: seed="X"; break;
}
switch(a%10){
case 0: value="10"; break;
case 1: value="01"; break;
case 2: value="02"; break;
case 3: value="03"; break;
case 4: value="04"; break;
case 5: value="05"; break;
case 6: value="06"; break;
case 7: value="07"; break;
case 8: value="08"; break;
case 9: value="09"; break;
default: value="XX"; break;
}
strcat(value, seed); /* ERROR: I need to concatenate the strings value and seed, but this isn't the right way */
return value;
}
我可以做些什么来连接字符串? value 和 seed 是指针。
【问题讨论】:
-
您没有为任何指针分配内存,连接它们会导致错误。先分配足够的内存,再拼接。
-
您阅读了
strcat上的文档并从那里开始。 -
除了不初始化指针或让它们指向分配的内存之外,您不能返回指向本地数据的指针。