当将数字转字符串的itoa
函数不可用时,==能够使用sprintf
函数==,可达到同样的效果,且移植性更强,同时也能够使用sprintf
函数来格式化字符串,功能强大。web
例:svg
sprintf(*p, "%d", num); //将num转为字符串输入到 p 中
这里也能够形象的理解为是先将num
用printf
打印(在屏幕上输出后确定就是一个一个的字符了),而后再将屏幕上的输出结果再输入进相应的字符串中。函数
按上这种理解,天然也就能够在其中加入其它内容,由于只要是printf能打印到屏幕上的内容都能进行添加,实际也如此(注:此处只是比喻!具体sprintf
实现原理暂未深刻研究)。ui
例:spa
int a = 123;
char b[] = "example";
char c[20];
sprintf(c, "%s - %d", b, a);
执行上述语句后C
中的内容便会以下所示:code
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个字符。==xml