c++ 去掉一个长字符串得所有\r\n,重新拼接为一个长字符串
时间: 2024-09-06 21:06:52 浏览: 38
在C++中,如果你想去掉一个长字符串(通常是`std::string`类型的)中的`\r\n`换行符并重新组合成一个字符串,你可以使用`std::stringstream`或者直接遍历字符串并替换换行符。这里是一个简单的例子:
```cpp
#include <string>
#include <sstream>
// 假设有一个名为str的长字符串
std::string str = "这是一个包含\r\n换行符的字符串.";
// 使用std::stringstream去除换行符
std::stringstream ss(str);
std::string newStr;
ss >> newStr; // 这会自动删除所有的"\n"和"\r"
newStr += "\n"; // 如果你想添加一个新的换行,这里手动添加
// 或者直接遍历字符串替换
std::string result;
for (char &c : str) {
if (c == '\r' || c == '\n') {
continue; // 跳过换行符
}
result += c;
}
// 使用新的字符串
std::cout << "新的字符串是: " << newStr << std::endl;
```
相关问题
c++ 去掉一个长字符串string每隔64位得换行符,重新拼接为一个长字符串
在 C++ 中,如果你有一个很长的字符串 `str` 并希望按照每 64 位分隔并添加换行符 `\n`,可以先将字符串拆分成多个子串,每个子串长度不超过 64 位,然后将它们连接起来形成新的字符串。这里是一个简单的示例:
```cpp
#include <iostream>
#include <sstream>
std::string formatLongString(const std::string& str) {
std::stringstream ss;
for (size_t i = 0; i < str.length(); i += 64) {
if (i + 64 > str.length()) {
// 如果剩余不足64位,取余
ss << str.substr(i);
} else {
ss << str.substr(i, 64) << "\n";
}
}
return ss.str();
}
int main() {
std::string longStr = "非常长的一段测试字符串,超过64位需要分割"; // 长字符串示例
std::string formattedStr = formatLongString(longStr);
std::cout << formattedStr << std::endl;
return 0;
}
```
在这个例子中,我们创建了一个 `stringstream` 对象 `ss`,然后遍历输入字符串,每次读取 64 位并在需要的时候添加换行符。最后,`ss.str()` 将流转换回标准字符串。
c++定义任意两个字符串,完成以下操作: (1)编写求字符串长度函数,显示该字符串长度; (2)编写字符串拼接函数,将该字符串与键盘输入的另一字符串拼接,并显示拼接结果; (3)编写比较大小函数,比较两字符串
以下是定义任意两个字符串的 C 代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
// 求字符串长度函数
int str_len(char *str) {
int len = 0;
while (*str++) {
len++;
}
return len;
}
// 字符串拼接函数
void str_cat(char *str1, char *str2) {
strcat(str1, str2);
}
// 比较大小函数
int str_cmp(char *str1, char *str2) {
return strcmp(str1, str2);
}
int main() {
char str1[MAX_LEN], str2[MAX_LEN];
printf("请输入第一个字符串:");
gets(str1);
printf("请输入第二个字符串:");
gets(str2);
printf("第一个字符串长度为:%d\n", str_len(str1));
printf("第二个字符串长度为:%d\n", str_len(str2));
str_cat(str1, str2);
printf("拼接后的字符串为:%s\n", str1);
int cmp_res = str_cmp(str1, str2);
if (cmp_res < 0) {
printf("第一个字符串小于第二个字符串\n");
} else if (cmp_res > 0) {
printf("第一个字符串大于第二个字符串\n");
} else {
printf("两个字符串相等\n");
}
return 0;
}
```
注意,在这个代码中,我们使用了 C 语言内置的 `strlen()` 函数来求字符串长度,使用了 `strcat()` 函数来进行字符串拼接,使用了 `strcmp()` 函数来进行字符串比较。同时,我们还自己手动实现了一个求字符串长度的函数 `str_len()`,这个函数的实现方式是遍历字符串并计数。
阅读全文