C中的串联

标签 c string concatenation

我正在创建一个结构数组,我需要将一个字符串值与 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/

相关文章:

c - C语言中如何判断链表是否为空

c - C中while循环中的switch语句

c - 调试劣质进程

c++ - 为什么需要前向声明?

php - 在 HEREDOC 字符串中调用 PHP 函数

java - Android Java 异常,即使在字符串 null 或空检查之后

string - MASM 字符串反转

javascript - 如何使用网络语言将一个变量连接到另一个变量的名称

java - 使用单个命令连接多个列表的良好 Java 习惯用法是什么?

javascript - 如何在不创建新数组的情况下用另一个数组扩展现有 JavaScript 数组