我需要在循环的每次迭代中形成一个字符串,其中包含循环索引i:

for(i=0;i<100;i++) {
  // Shown in java-like code which I need working in c!

  String prefix = "pre_";
  String suffix = "_suff";

  // This is the string I need formed:
  //  e.g. "pre_3_suff"
  String result = prefix + i + suffix;
}

我try 使用strcatitoa的各种组合,但运气不佳.

推荐答案

字符串在C语言中是很难的工作.

#include <stdio.h>

int main()
{
   int i;
   char buf[12];

   for (i = 0; i < 100; i++) {
      snprintf(buf, 12, "pre_%d_suff", i); // puts string into buffer
      printf("%s\n", buf); // outputs so you can see it
   }
}

12字节足以存储文本"pre_"、文本"_suff"、最多两个字符的字符串("99")以及位于C字符串缓冲区末尾的空终止符.

This将告诉你如何使用snprintf,但我建议你读一本好的C语言书!

C++相关问答推荐

为什么海湾合作委员会在共享对象中的. init_data的虚拟内存地址之前留出一个空白

如何通过Zephyr(Devicetree)在PR Pico上设置UTE 1?

va_copy的使用是未定义的行为吗?

MISRA C:2012 11.3违规强制转换(FLOAT*)到(uint32_t*)

将 typewriter LF打印到Windows终端,而不是隐含的CR+LF

为什么在4.9.37版的内核中,kfio还需要smp_wmb呢?

如何使fputs功能提示错误输入并要求用户重新输入.程序停止而不是请求新的输入

C lang:当我try 将3个或更多元素写入数组时,出现总线错误

在C23中使用_GENERIC实现带有右值的IS_POINTER(P)?

为什么STM32G474RE上没有启用RCC PLL

防止规范模式在C++中 echo 特殊字符

在C中访问数组中的特定值

-Wnonnull-Compare警告不是具有误导性吗?

为什么编译器不能简单地将数据从EDI转移到EAX?

共享目标代码似乎不能在Linux上的进程之间共享

如何使用WRITE()以指针地址的十六进制形式写入标准输出

RISC-V GCC编译器错误编译ASM代码

如何打印循环调度问题的时间表

未使用sem_open正确初始化信号量

将不同类型的指针传递给函数(C)