小知识点 长期更新
来源:互联网 发布:上瘾网络剧全集无删减 编辑:程序博客网 时间:2024/05/16 02:02
sprintf 编辑
字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。sprintf 是个变参函数。
http://baike.baidu.com/link?url=uZyVRgepx8ACcd5qFD_CXK4C79Sb-Lxu5uqtrUdJJXS8yjqaNhOrnvcu4zVE84Opu8AiPrbhmwd7hGbRWPDpZ_
int main(){ char buf[1100]; int a=10000; sprintf(buf,"%d",a); cout<<buf<<endl;}int main(){ char buf[1100]; char a[100]="10000"; sprintf(buf,"%s",a); cout<<buf<<endl;}此程序输出为10000int main(){ char buf[1100]; char a[100]="99"; int b=55; sprintf(buf,"%s%d",a,b); cout<<buf<<endl;}此程序输出为9955
这样sprintf的功能就很明了了。把确定类型值按照输入类型,输入到字符串中。
https://vjudge.net/problem/UVA-10815
关于set:http://baike.baidu.com/link?url=9vU9EMwoebFBV9-ZXj32mTO41v3r8edl6ou3cFPQ4fr0DqR-225ecSkZQmy6Qp8D3fzzjfGe9kBrArTwao3yY_
isalpha:一种函数:判断字符ch是否为英文字母,若为英文字母,返回非0(小写字母为2,大写字母为1)。若不是字母,返回0。在标准c中相当于使用“ isupper( ch ) || islower( ch ) ”做测试,
用法
C++ cctype ctype.h
tolower :
tolower是一种函数,功能是把字母字符转换成小写。
s[i]=tolower(s[i]);#include <iostream>#include <string>#include <cctype>using namespace std;int main(){ string str= "THIS IS A STRING"; for (int i=0; i <str.size(); i++) str[i] = tolower(str[i]); cout<<str<<endl; return 0;}
stringsteam ss;
int i;string s;stringstream ss(s);ss << i;cout <<ss.str();
读取str中的单字,比如hello world ,就会读取hello和world。
创建存储str的副本的 stringstream 对象,其中str是 string 类型的对象
iostream标准库支持内存中的输入/输出,只要将流与存储在程序内存中的string对象捆绑起来即可。此时,可使用iostream输入和输出操作符读写这个string对象。标准库定义了三种类型的字符串流:
1.istringstream,由istream派生而来,提供读string的功能。
2.ostringstream,由ostream派生而来,提供写string的功能。
3.stringstream,由iostream派生而来,提供读写string的功能。
作为数字和字符串之间的相互转化
#include<bits/stdc++.h>#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <map>#include <algorithm>#include <string>#include <set>#include <sstream>using namespace std;int main(){ string name; int age = 27; stringstream os; os << age; os >> name; // name:27 cout<<name<<endl;}输出结果为27的字符串型
用法;把字符串输入到ss里面
int main(){ stringstream ss_stream; ss_stream << "字符串一" << endl; ss_stream << "字符串二" << endl; ss_stream << "字符串三" << endl; ss_stream << "字符串四" << endl; ss_stream << "字符串五" << endl; char buffer[100]; while ( ss_stream.getline(buffer, sizeof(buffer))) { printf("msg=%s\n", buffer); }}
注意重复使用同一个stringstream对象时要 先继续清空,而清空很容易想到是clear方法,而在stringstream中这个方法实际上是清空stringstream的状态(比如出错等),真 正清空内容需要使用.str(“”)方法。
组合使用 是完全清空
关于stringstream 的对象完全清空方法
是使用 claer
和,str 组合使用 才可以重复使用。
void cle(stringstream &s){ s.clear(); s.str("");}
附加蓝桥杯算法训练 P1003 代码
题目链接: http://lx.lanqiao.cn/problem.page?gpid=T365
#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <map>#include <algorithm>#include <string>#include <set>#include <sstream>using namespace std;map<string ,int > d;map<string ,int > p;void cle(stringstream &s){ s.clear(); s.str("");}int main(){ string s,sr; getline(cin,s); string buf; stringstream ss(s); while(ss>>buf) { int x=strlen(&buf[0]); string c=buf; //cout<<x<<endl; sort(&buf[0],&buf[0]+x); //cout<<buf<<" z"<<endl; d[buf]=1; } cle(ss); getline(cin,sr); ss<<sr; while(ss>>buf) { int x=strlen(&buf[0]); sort(&buf[0],&buf[0]+x); //cout<<buf<<endl; if(d[buf]) { p[buf]=1; //cout<<buf<<endl; } } cle(ss); ss<<s; while(ss>>buf) { int x=strlen(&buf[0]); string c=buf; //cout<<x<<endl; sort(&buf[0],&buf[0]+x); if(p[buf]) cout<<c<<' '; }cout<<endl;}
- 小知识点 长期更新
- 长期更新知识点
- 笔记46--知识点更新-------长期更新
- 数学小知识(长期更新)
- 长期更新琐碎易忘知识点。。。。。
- C++中易记混知识点总结(长期更新)
- [长期记录]开发中的小知识点
- Java小技能点汇总(一)<日常开发中遇到的一些小知识点-长期更新>
- JavaScript 小知识记录(长期更新)
- 一些常规小算法【长期更新】
- 长期更新--零碎的小算法技巧
- 一些数学小思维Tips长期更新积累
- 做题时候的小技巧(长期更新)
- CLion的一些使用小技巧(长期更新)
- 小知识点汇总(实时更新)
- JavaScript 小知识点 持续更新
- Linux旅途之常用小技巧(长期更新) 12.26更新
- ARM拾遗(长期更新)
- GYM 100247 B. Similar Strings(水~)
- Java NIO 系列教程(一)
- 干货:vue2.x select2 指令封装
- 网络协议(二)Socket编程之TCP
- BZOJ1898: [Zjoi2005]Swamp 沼泽鳄鱼
- 小知识点 长期更新
- 【数组】Leetcode编程题解:380. Insert Delete GetRandom O(1)
- cocos2d-x-3.14.1的安装
- WEB入门之十九 UI
- tomcat性能优化
- minimum-depth-of-binary-tree
- PhaApi之分库分表
- DBHelper--面向对象的SQLite框架
- 05JVM-垃圾收集算法