我是 C 新手,遇到字符串问题。我想做的是在循环中创建一个像“val1,val2,val3”这样的字符串。
目前我的代码看起来像:
char tagstr[60] = "";
int k;
int n = 5;
for (k=0; k < n; k++) {
char temp[10] = "";
sprintf(temp, ", val%d", k);
strcat(tagstr, temp);
}
但是 tagstr 的输出是 ", val#",其中 # 是一些长整数值。我猜我在这里的指针做错了,但我已经尝试了我能想到的一切但没有成功......任何帮助将不胜感激。
编辑:更多上下文,如果有帮助:
int tagsClosed = strlen(pch1) - strcspn(pch1, ")");
do {
if (curTag.size > 0) {
// problem section
char tagstr[60] = "";
int k;
for (k = 0; k < 5; k++) {
char temp[10] = "";
sprintf(temp, ", val%i", temp, k);
strcat(tagstr, temp);
}
// This prints out something like ", val-890132840" x 5 (same number)
printf ("String is now: %s\n", tagstr);
}
curTag = *(curTag.parent);
tagsClosed--;
} while (tagsClosed > 0);
curTag 是一个结构:
typedef struct Tag {
char * name;
int size; // number of children
int tagnum;
struct Tag* parent;
} Tag;