网站建设实施计划包括,新手建网站视频教程,盗版视频网站怎么做,网页制作电子教程文章目录 string使用string类的例子#xff0c;统计一个字符串中单词的个数#xff1a;在算法模拟题中翻转字符串#xff1a;判断回文字符串#xff1a;字符串查找#xff1a;字符串替换#xff1a; 常用字符处理函数strlen()strcpy()strcat()strcmp()toupper() 和 tolow… 文章目录 string使用string类的例子统计一个字符串中单词的个数在算法模拟题中翻转字符串判断回文字符串字符串查找字符串替换 常用字符处理函数strlen()strcpy()strcat()strcmp()toupper() 和 tolower()isdigit() 和 isalpha()strncpy()strchr() 和 strrchr()strstr()isalnum() 和 isxdigit()isspace()isupper() 和 islower()sprintf() string
在C中string是一个表示字符串的类它提供了一系列方法来方便地操作字符串。与C语言中的字符串不同string类是一个对象可以像其他对象一样使用各种成员函数来处理它。
下面是一些常用的string方法
length() 或 size()返回字符串中字符的个数。substr(pos, len)返回从位置pos开始长度为len的子串。append(str) 或 operator(str)在字符串末尾添加str。insert(pos, str)在位置pos插入字符串str。erase(pos, len)删除从位置pos开始长度为len的子串。replace(pos, len, str)用字符串str替换从位置pos开始长度为len的子串。find(str) 或 find(str, pos)在字符串中查找子串str返回子串的起始位置如果查找不到则返回string::npos。compare(str)比较字符串与str返回0表示相等小于0表示当前字符串小于str大于0表示当前字符串大于str。c_str()返回一个指向字符串内容的指针。empty()判断字符串是否为空如果为空则返回true否则返回false。clear()清空字符串中的所有字符。push_back(ch)在字符串末尾添加字符ch。pop_back()删除字符串末尾的一个字符。getline()从输入流中读取一行字符串直到遇到换行符或文件结束符。at(index) 或 operator[](index)返回字符串中索引为index的字符。front()返回字符串中的第一个字符。back()返回字符串中的最后一个字符。reserve(n)预留至少能容纳n个字符的空间避免频繁分配内存。capacity()返回当前字符串能容纳的最大字符数。resize(n) 或 resize(n, ch)调整字符串的大小为n如果字符串变大则在末尾填充字符ch如果字符串变小则删除末尾的字符。shrink_to_fit()将字符串的容量缩小到与其大小相同释放多余的内存。
下面是一个使用string类的例子将一个字符串中的大写字母转换为小写字母
#include iostream
#include stringusing namespace std;int main() {string s Hello, World!;for (int i 0; i s.length(); i) {if (s[i] A s[i] Z) {s[i] s[i] - A a;}}cout s endl;return 0;
}hello, world!可以看到程序成功地将字符串中的大写字母转换为小写字母。
使用string类的例子统计一个字符串中单词的个数
#include iostream
#include stringusing namespace std;int main() {string s Hello, World! This is a test.;int count 0;for (int i 0; i s.length(); i) {if (s[i] ) {count;}}count; // 最后一个单词没有空格所以需要额外加一次cout Number of words: count endl;return 0;
}Number of words: 6可以看到程序成功地统计了字符串中单词的个数。
总之string类是一个非常实用的类可以方便地处理字符串。在实际编程中我们可以根据需要使用不同的方法来操作字符串以实现各种功能。
在算法模拟题中
在算法模拟题中string类是一个非常有用的工具可以方便地处理字符串。下面是一些常见的使用string的算法模拟题
翻转字符串
将一个字符串翻转过来例如将字符串hello变成olleh。可以使用string类的reverse()方法来实现。
#include iostream
#include stringusing namespace std;int main() {string s hello;reverse(s.begin(), s.end());cout s endl;return 0;
}olleh判断回文字符串
判断一个字符串是否是回文字符串即正着读和倒着读都一样例如level是回文字符串而hello不是。可以使用string类的reverse()方法或双指针来实现。
#include iostream
#include stringusing namespace std;int main() {string s level;string t s;reverse(t.begin(), t.end());if (s t) {cout Yes endl;} else {cout No endl;}return 0;
}Yes字符串查找
在一个字符串中查找另一个字符串出现的位置例如在字符串hello, world中查找子串wor的位置。可以使用string类的find()方法来实现。
#include iostream
#include stringusing namespace std;int main() {string s hello, world;string t wor;int pos s.find(t);if (pos ! string::npos) {cout Found at position pos endl;} else {cout Not found endl;}return 0;
}Found at position 7字符串替换
在一个字符串中将某个子串替换为另一个字符串例如将字符串hello, world中的子串world替换为universe。可以使用string类的replace()方法来实现。
#include iostream
#include stringusing namespace std;int main() {string s hello, world;string t world;string u universe;int pos s.find(t);if (pos ! string::npos) {s.replace(pos, t.length(), u);}cout s endl;return 0;
}hello, universe总之string类是一个非常实用的工具在算法模拟题中可以方便地处理字符串。需要注意的是在使用string类时要注意字符串的长度、空间占用等问题以避免出现不必要的错误。
常用字符处理函数
当然以下是一些在编程中常用的字符处理函数
strlen()
strlen() 函数可以返回一个字符串的长度即该字符串中非空字符的数量。例如
char s[] hello world;
int len strlen(s); // len 11需要注意的是strlen() 函数只能用于处理以 \0 结尾的字符串否则可能会导致未定义的行为。
strcpy()
strcpy() 函数可以将一个字符串复制到另一个字符串中。例如
char s1[] hello;
char s2[10];
strcpy(s2, s1); // 将 s1 复制到 s2 中需要注意的是strcpy() 函数会将源字符串中的 \0 也复制到目标字符串中因此需要确保目标字符串有足够的空间来存储复制后的字符串。
strcat()
strcat() 函数可以将一个字符串追加到另一个字符串的末尾。例如
char s1[] hello;
char s2[] world;
strcat(s1, s2); // 将 s2 追加到 s1 的末尾需要注意的是strcat() 函数会将源字符串中的 \0 也追加到目标字符串的末尾因此需要确保目标字符串有足够的空间来存储追加后的字符串。
strcmp()
strcmp() 函数可以比较两个字符串的大小关系。如果两个字符串相等则返回 0如果第一个字符串小于第二个字符串则返回一个负数如果第一个字符串大于第二个字符串则返回一个正数。例如
char s1[] hello;
char s2[] world;
int cmp strcmp(s1, s2); // cmp 0需要注意的是strcmp() 函数会比较两个字符串的每个字符直到出现不同的字符或其中一个字符串结束。
toupper() 和 tolower()
toupper() 函数可以将一个小写字母转换为大写字母而 tolower() 函数可以将一个大写字母转换为小写字母。例如
char c a;
char d toupper(c); // d Aisdigit() 和 isalpha()
isdigit() 函数可以判断一个字符是否为数字字符即 0 到 9 中的任意一个字符而 isalpha() 函数可以判断一个字符是否为字母字符即 A 到 Z 或 a 到 z 中的任意一个字符。例如
char c 9;
if (isdigit(c)) {cout c 是数字字符。 endl;
}这些只是编程中常用的一些字符处理函数的例子。通过使用这些函数您可以使您的代码更简洁、易读和易于维护。
strncpy()
strncpy() 类似于 strcpy()但它允许您从源字符串复制指定数量的字符到目标字符串中。例如
char s1[] hello;
char s2[10];
strncpy(s2, s1, 3); // 复制 s1 的前 3 个字符到 s2 中strchr() 和 strrchr()
strchr() 函数搜索字符串中指定字符的第一个出现位置并返回该位置的指针而 strrchr() 函数搜索字符串中指定字符的最后一个出现位置并返回该位置的指针。例如
char s[] hello world;
char* p strchr(s, o); // p 指向第一个 o
p strrchr(s, o); // p 指向最后一个 ostrstr()
strstr() 函数搜索字符串中指定子字符串的第一个出现位置并返回该位置的指针。例如
char s[] hello world;
char* p strstr(s, world); // p 指向 world 子字符串isalnum() 和 isxdigit()
isalnum() 函数可以判断一个字符是否为字母或数字字符而 isxdigit() 函数可以判断一个字符是否为十六进制数字字符。例如
char c A;
if (isalnum(c)) {cout c 是字母或数字字符。 endl;
}
if (isxdigit(c)) {cout c 是十六进制数字字符。 endl;
}isspace()
isspace() 函数可以判断一个字符是否为空格字符即空格、制表符、换行符、回车符、换页符或垂直制表符中的任意一个字符。例如
char c ;
if (isspace(c)) {cout c 是空格字符。 endl;
}isupper() 和 islower()
isupper() 函数可以判断一个字符是否为大写字母而 islower() 函数可以判断一个字符是否为小写字母。例如
char c A;
if (isupper(c)) {cout c 是大写字母。 endl;
}sprintf()
sprintf() 函数可以通过替换占位符来格式化字符串。例如
int x 42;
char s[20];
sprintf(s, 答案是 %d。, x); // s 答案是 42。这些只是编程中常用的一些字符处理函数的例子。通过使用这些函数您可以使您的代码更简洁、易读和易于维护。 文章转载自: http://www.morning.dkfb.cn.gov.cn.dkfb.cn http://www.morning.gpsr.cn.gov.cn.gpsr.cn http://www.morning.qnzpg.cn.gov.cn.qnzpg.cn http://www.morning.spbp.cn.gov.cn.spbp.cn http://www.morning.pbzgj.cn.gov.cn.pbzgj.cn http://www.morning.cpmwg.cn.gov.cn.cpmwg.cn http://www.morning.ckbmz.cn.gov.cn.ckbmz.cn http://www.morning.tgtsg.cn.gov.cn.tgtsg.cn http://www.morning.rfgkf.cn.gov.cn.rfgkf.cn http://www.morning.wbfly.cn.gov.cn.wbfly.cn http://www.morning.gqfks.cn.gov.cn.gqfks.cn http://www.morning.ltywr.cn.gov.cn.ltywr.cn http://www.morning.chzqy.cn.gov.cn.chzqy.cn http://www.morning.jqlx.cn.gov.cn.jqlx.cn http://www.morning.grbp.cn.gov.cn.grbp.cn http://www.morning.nfbnl.cn.gov.cn.nfbnl.cn http://www.morning.kxqmh.cn.gov.cn.kxqmh.cn http://www.morning.xqcgb.cn.gov.cn.xqcgb.cn http://www.morning.kphsp.cn.gov.cn.kphsp.cn http://www.morning.gmysq.cn.gov.cn.gmysq.cn http://www.morning.ppqzb.cn.gov.cn.ppqzb.cn http://www.morning.rbffj.cn.gov.cn.rbffj.cn http://www.morning.rhpy.cn.gov.cn.rhpy.cn http://www.morning.jcwt.cn.gov.cn.jcwt.cn http://www.morning.qhrsy.cn.gov.cn.qhrsy.cn http://www.morning.znqztgc.cn.gov.cn.znqztgc.cn http://www.morning.wprxm.cn.gov.cn.wprxm.cn http://www.morning.pmghz.cn.gov.cn.pmghz.cn http://www.morning.llyjx.cn.gov.cn.llyjx.cn http://www.morning.lcbt.cn.gov.cn.lcbt.cn http://www.morning.hsklc.cn.gov.cn.hsklc.cn http://www.morning.lbgsh.cn.gov.cn.lbgsh.cn http://www.morning.fflnw.cn.gov.cn.fflnw.cn http://www.morning.fpqsd.cn.gov.cn.fpqsd.cn http://www.morning.jfjbl.cn.gov.cn.jfjbl.cn http://www.morning.ftmp.cn.gov.cn.ftmp.cn http://www.morning.tfwg.cn.gov.cn.tfwg.cn http://www.morning.lmfxq.cn.gov.cn.lmfxq.cn http://www.morning.cxsdl.cn.gov.cn.cxsdl.cn http://www.morning.hgcz.cn.gov.cn.hgcz.cn http://www.morning.zqmdn.cn.gov.cn.zqmdn.cn http://www.morning.prgnp.cn.gov.cn.prgnp.cn http://www.morning.cxlys.cn.gov.cn.cxlys.cn http://www.morning.bfcrp.cn.gov.cn.bfcrp.cn http://www.morning.bytgy.com.gov.cn.bytgy.com http://www.morning.dzyxr.cn.gov.cn.dzyxr.cn http://www.morning.fykqh.cn.gov.cn.fykqh.cn http://www.morning.tnjkg.cn.gov.cn.tnjkg.cn http://www.morning.njqpg.cn.gov.cn.njqpg.cn http://www.morning.dansj.com.gov.cn.dansj.com http://www.morning.jfqpc.cn.gov.cn.jfqpc.cn http://www.morning.fpjw.cn.gov.cn.fpjw.cn http://www.morning.lsnnq.cn.gov.cn.lsnnq.cn http://www.morning.krbjb.cn.gov.cn.krbjb.cn http://www.morning.qynpw.cn.gov.cn.qynpw.cn http://www.morning.tlnbg.cn.gov.cn.tlnbg.cn http://www.morning.wknbc.cn.gov.cn.wknbc.cn http://www.morning.mstbbs.com.gov.cn.mstbbs.com http://www.morning.ltywr.cn.gov.cn.ltywr.cn http://www.morning.bnwlh.cn.gov.cn.bnwlh.cn http://www.morning.nnwpz.cn.gov.cn.nnwpz.cn http://www.morning.dhtdl.cn.gov.cn.dhtdl.cn http://www.morning.rppf.cn.gov.cn.rppf.cn http://www.morning.yymlk.cn.gov.cn.yymlk.cn http://www.morning.cwzzr.cn.gov.cn.cwzzr.cn http://www.morning.sqqds.cn.gov.cn.sqqds.cn http://www.morning.dglszn.com.gov.cn.dglszn.com http://www.morning.slmbg.cn.gov.cn.slmbg.cn http://www.morning.trffl.cn.gov.cn.trffl.cn http://www.morning.bpmdx.cn.gov.cn.bpmdx.cn http://www.morning.nzfqw.cn.gov.cn.nzfqw.cn http://www.morning.wknj.cn.gov.cn.wknj.cn http://www.morning.syznh.cn.gov.cn.syznh.cn http://www.morning.tsqrc.cn.gov.cn.tsqrc.cn http://www.morning.rnribht.cn.gov.cn.rnribht.cn http://www.morning.qjldz.cn.gov.cn.qjldz.cn http://www.morning.phgz.cn.gov.cn.phgz.cn http://www.morning.rnrwq.cn.gov.cn.rnrwq.cn http://www.morning.wpqwk.cn.gov.cn.wpqwk.cn http://www.morning.ymwny.cn.gov.cn.ymwny.cn