标准C++输入输出和字符串类学习小程序集锦
时间:2011-06-12 来源:涵曦
【声明】本博客内容可以随意转载,但请您注明出处: http://www.cnblogs.com/hanxi/
代码可能有很多不足之处或有错误,还望各路朋友们指点指点。
1.计算一个字符串在另一个字符串中出现的次数
程序思想:调用find函数查找子串,找到一个就记录一次,并接着往下找,直到找不到为止。
/*函数作用:用来计算一个字符串在另一个字符串中出现的次数*/
#include <string>
using std::string;
int count_str(string maxstr, string minstr)
{
int count = 0;
int i = 0;
while ((i = maxstr.find(minstr,i)) != string::npos)
{
count++;
i += minstr.size();
}
return count;
}
下面是一个测试程序:
#include <iostream>
using namespace std;
int count_str(string maxstr, string minstr);
int main()
{
string maxstr = "desdfdesdfdefgd";
string minstr = "de";
int num = count_str(maxstr, minstr);
cout << "出现了" << num << "次" << endl;
}
编译过程和结果:
$ g++ findstr.cpp main.cpp -o main
$ ./main
出现了3次
2.接受月份的数字,返回这个月份的名字:
程序思想:使用字符串s存放1到12月的英文单词,每个单词用逗号隔开,首尾也加逗号,然后进入一个循环判断该月是那一个月,判断过程中,
j存储月份名字开始字母的位置,i存放该月份名字后面的逗号的位置,找到月份的单词后就退出循环,最后返回字串。
/*数字转月份的名字*/
#include <string>
#include <iostream>
using namespace std;
string monthname(int monthnum)
{
string s=",January,February,March,April,May,June,July,August,Spetember,October,November,December,";
int count = 0;
int i=0,j=0;
do
{
j = i;//j存储月份名字开始字母的位置,i存放该月份名字后面的逗号的位置
i = s.find(",",i+1);
count++;
}while (count != monthnum);
return s.substr(j+1,i-j-1);
}
测试程序代码:
//monthnametext.cpp
#include <iostream>
using namespace std;
string monthname(int monthnum);
int main()
{
int num = 1;
for (;num<=12;num++)
{
cout << monthname(num) << endl;
}
}
编译过程和结果:
$ g++ monthname.cpp monthnametext.cpp -o m
$ ./m
January
February
March
April
May
June
July
August
Spetember
October
November
December
相关阅读 更多 +
排行榜 更多 +