sprintf将数字转为字符串,或格式化字符串

当将数字转字符串的itoa函数不可用时,==可以使用sprintf函数==,可达到一样的效果,且移植性更强,同时也可以使用sprintf函数来格式化字符串,功能强大。

例:

sprintf(*p, "%d", num); //将num转为字符串输入到 p 中

这里也可以形象的理解为是先将numprintf打印(在屏幕上输出后肯定就是一个一个的字符了),然后再将屏幕上的输出结果再输入进相应的字符串中。

按上这种理解,自然也就可以在其中加入其它内容,因为只要是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个字符。==

你可能感兴趣的:(#,《C语言》)