当前位置: 首页> 游戏> 单机 > 如何去做网络推广_平面设计培训价格_seo免费培训_泰安优化关键词排名哪家合适

如何去做网络推广_平面设计培训价格_seo免费培训_泰安优化关键词排名哪家合适

时间:2025/7/13 4:16:10来源:https://blog.csdn.net/2501_91282886/article/details/147014143 浏览次数:0次
如何去做网络推广_平面设计培训价格_seo免费培训_泰安优化关键词排名哪家合适

一、前面四个是计算带有空格字符串的的长度计算

C语言代码

#include<string.h>

#include<stdio.h>

 

int main()

{

    char s[105];

    gets(s);

    printf("%d", strlen(s));

    return 0;

}

算法2

C++ 代码(常用)

#include <iostream>

#include <cstring>

using namespace std;

int main()

{

    string a;

    getline(cin, a);

    cout << a.size() << endl;

    return 0;

}

算法3

C++ 代码

#include <iostream>

#include <cstring>

 

using namespace std;

 

int main()

{

    char a[105];

    cin.get(a, 105);//需要注意cin.get()不会把换行符取出删除,影响下一次读入!

    cout << strlen(a) << endl;

    return 0;

}

算法4

C++ 代码

#include <iostream>

#include <cstring>

using namespace std;

int main()

{

    char a[105];

    cin.getline(a, 105);//需要注意cin.getline()会把换行符取出删除,不影响下一次读入!

    cout << strlen(a) << endl;

    return 0;

}

顺带一提 cin scanf读入字符串时遇到空格就停止了

二、对字符串处理的常用的函数

1. size() length()

这两个函数用于返回字符串的长度。

cpp

复制编辑

string s = "hello";
cout << s.size() << endl;   // 输出 5
cout << s.length() << endl; // 输出 5

  • size() 和 length() 是等价的,返回字符串的字符数。

2. substr(start, length)

从字符串中提取一个子字符串。start 是开始的位置,length 是子字符串的长度。如果 length 超出了范围,返回从 start 到字符串末尾的部分。

cpp

复制编辑

string s = "hello";
string sub = s.substr(1, 3);  // 提取从位置 1 开始,长度为 3 的子字符串
cout << sub << endl;  // 输出 "ell"

  • 如果只传递一个参数 start,会从 start 位置提取到字符串末尾。

    cpp
    复制编辑
    string s = "hello";
    string sub = s.substr(2);  // 从位置 2 开始提取到字符串末尾
    cout << sub << endl;  // 输出 "llo"

3. find(substring)

返回子字符串第一次出现的位置。如果没有找到子字符串,返回 string::npos。

cpp

复制编辑

string s = "hello";
int pos = s.find("ll");
cout << pos << endl;  // 输出 2

  • find() 还可以指定搜索的起始位置:s.find("ll", 3) 会从索引 3 开始查找。

4. rfind(substring)

与 find() 类似,但从字符串的末尾开始查找。

cpp

复制编辑

string s = "hello";
int pos = s.rfind("l");
cout << pos << endl;  // 输出 3 (从右到左查找)

5. erase(start, length)

删除从 start 位置开始的指定长度的字符。

cpp

复制编辑

string s = "hello";
s.erase(1, 2);   // 从位置 1 开始删除 2 个字符
cout << s << endl;  // 输出 "ho"

  • 如果只提供 start 参数,erase() 会删除从 start 到字符串末尾的所有字符。

    cpp
    复制编辑
    string s = "hello";
    s.erase(2);  // 从位置 2 开始删除到末尾
    cout << s << endl;  // 输出 "he"

6. insert(start, substring)

在指定位置插入一个子字符串。

cpp

复制编辑

string s = "hello";
s.insert(3, "abc");  // 在位置 3 插入 "abc"
cout << s << endl;  // 输出 "helabclo"

7. replace(start, length, substring)

替换从 start 位置开始的 length 个字符为 substring。

cpp

复制编辑

string s = "hello";
s.replace(1, 2, "abc");  // 从位置 1 开始,替换 2 个字符为 "abc"
cout << s << endl;  // 输出 "habclo"

8. at(index)

返回指定位置的字符(比 operator[] 更安全,当索引越界时会抛出 out_of_range 异常)。

cpp

复制编辑

string s = "hello";
cout << s.at(1) << endl;  // 输出 'e'

  • 如果 index 超出了范围,at() 会抛出异常。

    cpp
    复制编辑
    try {
        cout << s.at(10) << endl;  // 抛出异常
    } catch (out_of_range& e) {
        cout << "Out of range" << endl;
    }

9. c_str()

将 string 转换为 C 风格的字符串(即以 null 结尾的字符数组)。

cpp

复制编辑

string s = "hello";
const char* cstr = s.c_str();
cout << cstr << endl;  // 输出 "hello"

10. push_back(c)

向字符串的末尾添加一个字符。

cpp

复制编辑

string s = "hello";
s.push_back('!');
cout << s << endl;  // 输出 "hello!"

11. pop_back()

删除字符串的最后一个字符。

cpp

复制编辑

string s = "hello";
s.pop_back();
cout << s << endl;  // 输出 "hell"

12. clear()

清空字符串内容,使其长度为 0。

cpp

复制编辑

string s = "hello";
s.clear();
cout << s.size() << endl;  // 输出 0

13. empty()

判断字符串是否为空。

cpp

复制编辑

string s = "hello";
cout << (s.empty() ? "Yes" : "No") << endl;  // 输出 "No"

s.clear();
cout << (s.empty() ? "Yes" : "No") << endl;  // 输出 "Yes"

14. stoi() / stol() / stoll()

将字符串转换为整数类型。

cpp

复制编辑

string s = "12345";
int num = stoi(s);  // 将字符串 "12345" 转换为整数 12345
cout << num << endl;  // 输出 12345

  • stoi 用于 int,stol 用于 long,stoll 用于 long long。

15. to_string()

将整数或浮点数转换为字符串。

cpp

复制编辑

int num = 12345;
string s = to_string(num);  // 将整数 12345 转换为字符串 "12345"
cout << s << endl;  // 输出 "12345"

16. sort()

对字符串进行排序。需要 #include <algorithm>。

cpp

复制编辑

string s = "dcba";
sort(s.begin(), s.end());  // 对字符串进行字典顺序排序
cout << s << endl;  // 输出 "abcd"

17. reverse()

反转字符串。需要 #include <algorithm>。

cpp

复制编辑

string s = "hello";
reverse(s.begin(), s.end());
cout << s << endl;  // 输出 "olleh"

总结:

这些函数可以帮助我们在蓝桥杯等编程竞赛中进行各种字符串处理操作。掌握这些常用的字符串操作函数,会极大提高解题效率。希望这些例子对你有所帮助!如果你对某个具体函数有疑问,或者需要更多的解释,请随时告诉我!

三、对字符串的插入操作 

关键字:如何去做网络推广_平面设计培训价格_seo免费培训_泰安优化关键词排名哪家合适

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: