我正在创建一个结构数组,我需要将一个字符串值与 for 循环索引连接起来。
这就是我创建结构的方式:
typedef struct b
{
char title[30];
char author[40];
int year,price;
}
book_t;
然后我使用 malloc 创建一个数组:
int m;
printf ("array size:\n");
scanf("%d",&m);
B= (book_t *) malloc (m*sizeof ( book_t));
然后我需要传递值来填充这种形式的数组: 标题_i, 作者_i, 1000+我, 3 * i 因为 i=1...m 所以我使用这个 for 循环:
for(i=1;i<=m;i++){
B[i-1].title='title_';
B[i-1].author='author_';
B[i-1].year=1000_i;
B[i-1].price=3*i;
}
关于如何获取标题和作者字段的字符串值旁边的每个循环的 i 值的任何想法?
最佳答案
改变这个循环
for(i=1;i<=m;i++){
B[i-1].title='title_';
B[i-1].author='author_';
B[i-1].year=1000_i;
B[i-1].price=3*i;
}
到
for ( i = 0; i < m; i++ )
{
sprintf( B[i].title, "%s%d", "title_", i + 1 );
sprintf( B[i].author, "%s%d", "author_", i + 1 );
B[i].year = 1000 + i + 1;
B[i].price = 3 * ( i + 1 );
}
我认为 1000_i
你的意思是 1000 + i + 1
关于C中的串联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26471983/