作者:OpenZzzz | 来源:互联网 | 2023-09-14 11:35
问题1:如果有一个string,比如就是abcdeabcd,我想把这个串存到字符数组里去,怎么做比较好?问题2:另外如果要对这个串进行如下替换操作:1.从左至右查找字符d,2.
问题1:如果有一个string,比如就是"abcdeabcd",我想把这个串存到字符数组里去,怎么做比较好?
问题2:另外如果要对这个串进行如下替换操作:
1.从左至右查找字符d,
2.找到d后判断d的左边是不是c,右边是不是e,如果满足,则将d替换成X
这样,上面的字符串"abcdeabcd"中有两个d,但只有第一个d满足条件,所以结果应该是"abcXeabcd",
而不应该是"abcXeabcX",我能想到的就是先把字符串存到字符数组里,然后用循环+指针来完成,然后再存回字符串,但不知道有没有不用字符数组就能做到的函数或方法?
10 个解决方案
问题1:如果有一个string,比如就是"abcdeabcd",我想把这个串存到字符数组里去,怎么做比较好?
==========================
//...
char *ptr = "abcdeabcd";
char str[30];
for (int i = 0; str[i++] = *ptr++; )
;
//code...
问题2:
//code...
int i = 1;
while (str[i])
{
if (str[i-1] == 'c' && str[i] == 'd' && str[i+1] == 'e')
{
str[i] = 'X';
}
}
//code...
,但不知道有没有不用字符数组就能做到的函数或方法?
================
原来楼主是要实现这样的目的才把字符串存到数组里啊 ...
那根本不用数组 ...
//code...
char *ptr = NULL;
if (!(ptr=(char *)malloc(100))) exit (1);
strcpy(ptr, "abcdeabcd");
while (*ptr)
{
if (*ptr == 'c' && *(ptr+1) == 'd' && *(ptr+2) == 'e')
{
*++ptr = 'X';
}
++ptr;
}
free(ptr);
//code...
用一个指针指向这个 string,
然后就把这个指针当作数组用吧 ...
s.c_str() 楼上正解.
vector可以用 &v[0] 得到的指针当数组用.
但string不能&s[0]得到的指针当c字符数组来用. string里字符存储的不保证是连续的.也不保证是以'\0'结尾的.
<>条款16: 如何将vector和string的数据传给遗留的API
找到一个函数
void string_replace(string & strBig, const string & strsrc, const string &strdst) {
string::size_type pos=0;
string::size_type srclen=strsrc.size();
string::size_type dstlen=strdst.size();
while( (pos=strBig.find(strsrc, pos)) != string::npos){
strBig.replace(pos, srclen, strdst);
pos += dstlen;
}
}
使用:
string s = "abcdeabcdecd";
string_replace(s,"cde", "cXe");
const char *a = str.c_str();
//
会多一个’/0‘,data()才是王道!
推荐阅读
-
题目描述输入整型数组和排序标识,对其元素按照升序或降序进行排序(一组测试用例可能会有多组数据)本题有多组输入,请使用whil ...
[详细]
蜡笔小新 2024-09-30 18:28:29
-
下面是一个用openssl实现获取https网页内容的demo,整个流程比较简单,主要封装的API如下staticinthttps_init(http ...
[详细]
蜡笔小新 2024-09-29 16:41:10
-
-
很好的博客:https:blog.csdn.netqq_39809664articledetails79934516可持久化数组#include#inclu ...
[详细]
蜡笔小新 2024-09-30 15:02:35
-
最近自己做一个工具最后涉及到一个存储成bmp位图的形式,由于这部分并不是整个project的重点我就从网上找了例子改了改,但是目前的问题是有很多时候都是存储的bmp全黑,我也并不知道是怎么回事。 ...
[详细]
蜡笔小新 2024-09-30 13:15:34
-
DFS基本概念步骤优缺点典型例题递推基本概念直接或者间接调用自身的算法称为递归算法一般数据n ...
[详细]
蜡笔小新 2024-09-30 12:02:17
-
题目链接:杭电多校7-VirtualJudgevjudge上题目显示的有问题,我下面附上官方题目:样例输入:32201 ...
[详细]
蜡笔小新 2024-09-30 10:31:00
-
题意给出一个长度为n的序列,有一些位置可以放任意的数,问最长上升序列的长度。n ...
[详细]
蜡笔小新 2024-09-30 00:01:10
-
在这一期的SendMessage函数应用中,我将向大家介绍如何利用消息函数来扩展树型列表(TreeView)控件的功能相信对于树型列表控件大家十分的熟悉, ...
[详细]
蜡笔小新 2024-09-29 19:45:57
-
在MirrorAPI中,我们可以使用以下内容: ...
[详细]
蜡笔小新 2024-09-29 18:39:06
-
简单动态字符串redis里面很多地方都用到了字符串,我们知道redis是一个键值对存储的非关系型数据库,那么所有的key都是用字符串存储的,还有字符串类型,这些都是用字符串存储的 ...
[详细]
蜡笔小新 2024-09-29 17:23:27
-
文章目录一.BF算法1.算法思想2.代码实现二.KMP算法1.算法思想概述2.理解基于最长相等前后缀进行匹配3.代码中如何实现next数组5.代码实现6.next数组的优化一.BF ...
[详细]
蜡笔小新 2024-09-29 15:37:42
-
词法分析,是编译器的第一个模块,也是最简单的模块。最简单,指的是相对于编译器这种大型程序而言,与一般的代码相比还是有点复杂的 ...
[详细]
蜡笔小新 2024-09-29 12:51:26
-
题目描述 FarmerJohn新买了一块长方形的牧场,这块牧场被划分成M行N列(1<M<12;1<N<12),每一格都是一块正方形的土地。FJ打 ...
[详细]
蜡笔小新 2024-09-29 11:31:29
-
篇首语:本文由编程笔记#小编为大家整理,主要介绍了Xunit测试使用个人小结相关的知识,希望对你有一定的参考价值。因工作中用到xunit测试,故总结下用法,以供个人参考使 ...
[详细]
蜡笔小新 2024-09-29 10:56:48
-
篇首语:本文由编程笔记#小编为大家整理,主要介绍了将JSON数组反序列化为强类型的.NET对象相关的知识,希望对你有一定的参考价值。 ...
[详细]
蜡笔小新 2024-09-30 12:04:04
-