c语言库函数的一些类型转换:
sprintf()函数可以将一个变量从int类型转换到字符串类型。但是为了正确地完成这个任务,必须确保证目标缓冲区有足够大空间以容纳转换完的字符串。此外,还必须使用正确的格式化符。如果使用了不正确的格式化符,会导致非预知的后果。下面是一个例子:
int n=10000;
chars[10];
sprintf(s,”%d”,n);// s中的内容为“10000”
到目前为止看起来还不错。但是,对上面代码的一个微小的改变就会使程序崩溃:
int n=10000;
char s[10];
sprintf(s,”%f”,n);// 看!错误的格式化符
使用sprintf()的一个例子:
#include
#include
int main()
{
int abc, de, x, y, z, i, ok, count = 0;
char s[20], buff[100];
scanf("%s", s);
for (abc = 100; abc < 999; abc++)
{
for (de = 10; de < 99; de++)
{
x = abc * (de % 10);
y = abc * (de / 10);
z = abc * de;
sprintf(buff, "%d%d%d%d%d", abc, de, x, y, z);
ok = 1;
for (i = 0; i < strlen(buff); i++)
if (strchr(s, buff[i]) == NULL)
ok = 0;
if (ok)
{
printf("<%d>/n", ++count);
printf("%5d/nX%4d/n-----/n%5d/n%4d/n-----/n%5d/n", abc, de, x, y, z);
}
}
}
printf("The number of solutions = %d/n", count);
return 0;
}
sprintf()函数将abc,de,x,y,z转换为字符类型的每一个每一个字符。
c++的类型转换实现:
#include
istringstream类用于执行C++风格的字符串流的输入操作。
ostringstream类用于执行C++风格的字符串流的输出操作。
strstream类同时可以支持C++风格的串流的输入输出操作。
(一)stringstream:
例子一:基本数据类型转换例子 int转string
运行结果:
例子二:除了基本类型的转换,也支持char *的转换。
例子三:再进行多次转换的时候,必须调用stringstream的成员函数clear().
运行clear的结果
没有运行clear的结果
描述:从流中提取数据,支持 >> 操作
这里字符串可以包括多个单词,单词之间使用空格分开
初始化:使用字符串进行初始化
使用:我们可以使用分解点获取不同的数据,完成 字符串 到 其他类型 的转换
常用成员函数:
举例:把字符串类型的数据转换为其他类型
举例2:把一行字符串放入流中,单词以空格隔开。之后把一个个单词从流中依次读取到字符串
输入:123 34 45
输出:
123 换行 34 换行 45
ostringstream类
描述:把其他类型的数据写入流(往流中写入数据),支持<<操作
初始化:使用字符串进行初始化
举例: