谭浩强C++课后习题45——字符串流操作
题目描述:在一个字符数组中存放了10个整数,以空格相间隔,要求将它们放到整型数组中,再按大小排序,然后再存放回字符数组中。
#include<iostream>
#include<strstream>
using namespace std;
int main() {
char ch[50] = "12 15 30 61 0 9 10 8 25 20";
//建立输入串流对象,并与ch关联
istrstream strin(ch, sizeof(ch));
int num[10];
for (int i = 0;i < 10;i++) {
strin >> num[i];
}
cout << "原数组内容:";
for (int i = 0;i < 10;i++)
cout << num[i] << " ";
cout << endl;
//冒泡排序
int temp;
for (int i = 0;i < 9;i++) {
for (int j = 0;j < 9 - i;j++) {
if (num[j] > num[j + 1]) {
temp = num[j];
num[j] = num[j + 1];
num[j + 1] = temp;
}
}
}
//创建输出串流对象,并与ch关联
ostrstream strout(ch, sizeof(ch));
//将排序好的新数组存入字符串
for (int i = 0;i < 10;i++)
strout << num[i] << " ";
//加入'\0'
strout << endl;
cout << "新字符串:";
cout << ch << endl;
return 0;
}
运行结果: