私は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;