当将数字转字符串的itoa
函数不可用时,==可以使用sprintf
函数==,可达到一样的效果,且移植性更强,同时也可以使用sprintf
函数来格式化字符串,功能强大。
例:
sprintf(*p, "%d", num); //将num转为字符串输入到 p 中
这里也可以形象的理解为是先将num
用printf
打印(在屏幕上输出后肯定就是一个一个的字符了),然后再将屏幕上的输出结果再输入进相应的字符串中。
按上这种理解,自然也就可以在其中加入其它内容,因为只要是printf能打印到屏幕上的内容都能进行添加,实际也如此(注:此处只是比喻!具体sprintf
实现原理暂未深入研究)。
例:
int a = 123;
char b[] = "example";
char c[20];
sprintf(c, "%s - %d", b, a);
执行上述语句后C
中的内容便会如下所示:
c[0] | c[1] | c[2] | c[3] | c[4] | c[5] | c[6] | c[7] | c[8] | c[9] | c[10] | c[11] | c[12] | c[13] |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
e | x | a | m | p | l | e | 空格 | - | 空格 | 1 | 2 | 3 | \0 |
便会将上述这14个字符存入到c字符串中,==后面会自带一个“\0”!同时 c 中剩余字符是不会被改动的,原来是什么就是什么,会发生改动的只有这14个字符。==