Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to concatenate string and int in C?

Tags:

c

string

I need to form a string, inside each iteration of the loop, which contains the loop index 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; } 

I tried using various combinations of strcat and itoa with no luck.

like image 642
john Avatar asked Mar 02 '11 19:03

john


Video Answer


1 Answers

Strings are hard work in 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    } } 

The 12 is enough bytes to store the text "pre_", the text "_suff", a string of up to two characters ("99") and the NULL terminator that goes on the end of C string buffers.

This will tell you how to use snprintf, but I suggest a good C book!

like image 135
Lightness Races in Orbit Avatar answered Oct 06 '22 13:10

Lightness Races in Orbit