Python str & C++ char[] & C++ string【字符串数据处理效率分析】

本次测试采用 25万条 csv 格式的地铁信息字符串数据进行处理,我们需要找到其中的一个关键位置的时间并提取。

前提声明:

  • Python str、C++ char[] 、C++ string采用同样的算法编写实现
  • 采用同样的数据进行处理
  • 避免 i n c l u d e include include i m p o r t import import 不必要的文件产生干扰
  • 避免 s t r l e n ( ) strlen() strlen() 这种 O ( n ) O(n) O(n) 效率的函数干扰
  • 没有关闭 c i n cin cin 的保护机制,减少对效率的影响

测试结果:

  • C++ char[]:00:06.37(7秒
  • C++ char[] (使用strlen()):00:08.99(9秒
  • C++ string:01:29.73(1分30秒
  • Python str:02:46.80(2分47秒

结论:

  • 都说String慢,没想到这么慢!不过还好有更优秀的Python兄弟作陪衬
  • 对处理效率苛刻的情况下,能用char[]处理尽量采用char[]
  • 事实证明,类、对象、迭代器效率堪忧

测试代码:

  • 注意:微软标准中的 gets_s() 在其他运行环境里应表示成 gets() 。
  • C++ char[]
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
#define ll long long int
#define INF 0x3f3f3f3f
const int maxn = 1e5 + 10;
int vis[25];
int main()
{
   
	freopen("F:/R_train_pre/Metro_train/record_2019-01-16.csv", "r", stdin);
	//freopen("C:/Users/76485/Desktop/testcsv1.txt", "r", stdin);
	memset(vis, 0, sizeof vis);
	char str[200];
	gets_s(str);
	while (gets_s(str)) 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: c 字符串替换指定字符是指将字符串中的某个字符替换成另一个字符。可以通过循环遍历字符串的每个字符,然后判断是否需要替换,若需要替换则将字符替换成目标字符,最后得到新的字符串。 具体步骤可以如下: 1. 定义一个空字符串作为替换后的结果。 2. 使用for循环遍历源字符串中的每个字符。 3. 判断当前字符是否需要替换,如果是需要替换的字符则将其替换成目标字符,否则保持不变。 4. 将替换后的字符添加到结果字符串中。 5. 循环结束后,结果字符串就是替换完成后的最终结果。 以下是一个示例代码,演示了如何实现字符串替换指定字符: ```python def replace_char(string, source_char, target_char): result = "" for char in string: if char == source_char: result += target_char else: result += char return result # 调用示例 source_string = "Hello, world!" source_char = "o" target_char = "*" replaced_string = replace_char(source_string, source_char, target_char) print(replaced_string) ``` 以上代码将字符串中的所有小写字母 "o" 替换成了星号 "*",输出结果为 "Hell*, w*rld!"。如果需要替换其他字符,只需修改参数即可。 这是实现字符串替换指定字符的基本思路,可以根据实际需要进行适当的修改和优化。 ### 回答2: 字符串替换指定字符是指在一个字符串中将指定的字符替换为新的字符或字符串。使用C语言可以通过遍历字符串,找到匹配的字符并进行替换来实现。 首先,我们需要声明一个字符数组来存储字符串,例如: ```c char str[] = "Hello, World!"; ``` 然后,我们可以使用循环遍历字符串中的每个字符,判断是否需要替换。假设我们想将字符'e'替换为字符'X',可以使用如下代码: ```c for (int i = 0; i < strlen(str); i++) { if (str[i] == 'e') { str[i] = 'X'; } } ``` 以上代码会遍历字符串中的每个字符,如果字符是'e',就将其替换为'X'。如果我们想要替换的是一个字符串,可以使用库函数`strcpy`来实现: ```c #include <string.h> char str[] = "Hello, World!"; char replace[] = "X"; char *ptr = strstr(str, "o"); if (ptr != NULL) { strcpy(ptr, replace); } ``` 以上代码会用新字符串"X"替换原字符串中首次出现的"o"。 ### 回答3: 字符串替换是指将一个字符串中的指定字符替换为另一个字符。为了实现这个功能,可以使用编程语言中的字符串替换函数或方法。 一个常见的例子是使用Python编程语言中的replace()方法来替换字符串中的指定字符。replace()方法接受两个参数,第一个参数是要替换的字符,第二个参数是替换后的字符。以下是一个示例代码: ```python string = "Hello, World!" new_string = string.replace("o", "0") print(new_string) ``` 运行上述代码,输出的结果将是: ``` Hell0, W0rld! ``` 在这个例子中,我们将字符串中的所有字符"o"替换为"0",并将新的字符串赋值给变量new_string。输出的结果是新的字符串"Hello, World!"中所有字符"o"被替换为"0"。 在其他编程语言中,也有似的字符串替换函数或方法可以使用。只需查阅相应编程语言的文档或教程,了解如何使用字符串替换函数或方法即可实现字符串的替换操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值