欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

sprintf函数经典用法总结

程序员文章站 2024-03-22 09:49:40
...
#include<stdio.h>
int main()
{

    /* itoa在windows下才有,linus下可以通过sprintf来做转换
	 函数功能:把格式化的数据写入某个字符串
	 返回值:字符串长度
	 */

   //sprintf 函数实现字符串的连接功能
   	 char k[100];
     int test=12345;
    int j=0,n=0;//可以返回字符串长度


	 n=sprintf(k,"qwer123%dhellow world",test);
	 printf("连接后的字符串为:%s\t长度为:%d",k,n);


	char *who="I";//可以替换成who[]="I";
	char *whom="CSDN";
	int c=+123;
	char s[200];
    printf("\n待连接的字符串:%s\t%s\t%d\n",who,whom,c);
	j=sprintf(s,"%s love %s %d.",who,whom,c);//产生:"I love CSDN." 这字符串写到s中
	 printf("连接后的字符串为:%s\t长度为:%d",s,j);



	 //sprintf 函数实现itoa的功能


	 n=sprintf(k,"123%d",test);
	 printf("\n原来的整形数为:%d",test);
	 printf("\n转换后的字符串数据为:%s\t长度为:%d\n",k,n);

    //变成十六进制的字符串

    printf("\n原十进制数为:4567");
    sprintf(s, "%8x", 4567); //小写16 进制,宽度占8 个位置,右对齐
    printf("\n转换后的十六进制小写字符串为:%s\n",s);

     sprintf(s, "%o", 4567); //小写16 进制,宽度占8 个位置,右对齐
    printf("转换后的八进制字符串为:%s\n",s);


    printf("\n原十进制数为:4568\n");
    sprintf(s, "%-8X", 4568); //大写16 进制,宽度占8 个位置,左对齐
    printf("转换后的十六进制大写字符串为:%s\n",s);


    sprintf(s, "%-8o", 4568); //大写16 进制,宽度占8 个位置,左对齐
    printf("转换后的八进制字符串为:%s\n",s);


}

结果演示:sprintf函数经典用法总结

更多的用法请参考:https://blog.csdn.net/sjf331/article/details/339254