sprintf
函数声明如下:
int sprintf ( char * str, const char * format, ... );
与printf类似将format后各参数按照format定义的形式转换成一个字符串,不同于printf的是不打印出来,而是存入str指向的缓冲区中。默认将nul补充到字符串末尾,使用时注意缓冲区大小(snprintf)。
返回值:
成功时,返回所写的字符总数。此计数不包括自动附加到字符串末尾的nul字符。
失败时,返回一个负数。
sscanf
函数声明如下:
int sscanf ( const char * s, const char * format, ...);
从s中读取数据,并根据参数格式将数据存储到附加参数指定的位置,就像使用scanf一样,但是从s中读取数据而不是标准输入(stdin)。
返回值:
成功时,函数返回成功填充的参数列表中的项数。该计数可以匹配预期的项数,匹配失败的情况下小于(甚至为零)。
示例:
将字符串转整形:
int main() { char *buf = "10000"; int a = 0; sscanf(buf, "%d", &a); a += 1000; cout << a << endl; return 0; }
//11000
将整形转字符串:
int main() { int a = 10000; char buf[1024]; sprintf(buf, "%d", a); string s(buf); cout << s << endl; return 0; }
//10000