Questions tagged «string»

字符串是有限的符号序列,通常用于文本,尽管有时用于任意数据。


4
如何计算任意两个字母字符之间的破折号?
如果我们有一串字母字符和一些破折号,并且我们要计算该字符串中任意两个字母字符之间的破折号数。最简单的方法是什么? 例: 输入: a--bc---d-k 输出: 2031 这意味着a和b之间有2个破折号,b和c之间有0破折号,c和d之间有3个破折号,而d和k之间有1个破折号 在python中找到此输出列表的好方法是什么?
10 python  string 

2
在只读情况下,什么时候需要空终止的字符串?
我一直在研究该std::string_view库,并且一直在考虑更改我一直在努力使用的代码库std::string_view。但是,在我阅读过的许多主题中,有关何时何地使用std::string_view而不是的主题const std::string &。我已经看到许多答案说:“何时不需要以null结尾的字符串。” 因此,当我开始在网上搜索“何时需要以null结尾的字符串?” 在这个问题上,我还没有真正有用的答案。 我可以想到一个外部库的示例,您需要链接到该外部库std::string。在那种情况下,您将需要一个以null结尾的字符串,因为该库需要它。我想另一个例子是,如果您需要修改字符串本身,但是const &如果我们需要修改它,那么我们就不会通过。 那么什么时候需要使用以null结尾的字符串? 我看过的链接: std :: string_view比const std :: string&到底有多快? 什么时候可以传递const&std :: string而不是std :: string_view? 为什么只有字符串视图? 在C ++ 17中使用const std :: string&参数是否有意义?

4
字符数组应如何用作字符串?
我知道C中的字符串只是字符数组。因此,我尝试了以下代码,但给出了奇怪的结果,例如垃圾输出或程序崩溃: #include <stdio.h> int main (void) { char str [5] = "hello"; puts(str); } 为什么不起作用? 它可以用干净地编译gcc -std=c17 -pedantic-errors -Wall -Wextra。 注意:对于在声明字符串时未能为NUL终止符分配空间而引起的问题,本帖子旨在用作规范的FAQ。

3
用C定义字符串的细节是什么?
我应该为我的一个班回答一个家庭作业问题。具体来说,我应该说是否将C中的某些数组视为字符串。根据本文(https://www.geeksforgeeks.org/strings-in-c-2/),我知道字符串是一个字符数组,结尾是空终止符。 我的主要困扰是询问如下数组的问题: char c1[] = { 'C', 'S', '\0', '3', '2', '4', '\0' }; 显然这是一个字符数组,末尾有一个空终止符。但是,由于它的中间也有一个空终止符,它是否仍被认为是字符串?这将如何影响字符串? 编辑:根据评论,我提供了问题的实际措辞: “出于将它们用作strcpy(),strncpy(),strcmp(),strncmp()和类似的字符串函数(表示所有适用)的参数的目的,可以将以下哪些数组视为“字符串”?” 编辑:我给我的教授发了电子邮件,因为这个问题的措词似乎模棱两可(正如一些人指出的那样)。如果有人好奇,他告诉我“是的,它是一个字符串。关键是有一个空字符。但是,这当然会影响任何字符串操作;该字符串以空字符结尾。”

4
不使用乘法C#将字符串转换为整数
有没有一种方法可以将字符串转换为整数而不使用乘法。int.Parse()的实现也使用乘法。我还有其他类似的问题,您可以在其中手动将字符串转换为int,但这还需要将数字乘以10为底。这是我在一次采访中遇到的一个采访问题,我似乎找不到任何答案。
9 c#  string  int 

5
正则表达式删除R中的前导零,除非最终(或唯一)字符为零
gsub("(?<![0-9])0+", "", c("005", "0AB", "000", "0"), perl = TRUE) #> [1] "5" "AB" "" "" gsub("(^|[^0-9])0+", "\\1", c("005", "0AB", "000", "0"), perl = TRUE) #> [1] "5" "AB" "" "" 上面的正则表达式来自此SO线程,它说明了如何从R中的字符串中删除所有前导零。由于此正则表达式,“ 000”和“ 0”都转换为“”。相反,我想从字符串中删除所有前导零,但最终字符恰好为零或唯一字符为零的情况除外。 "005" would become "5" "0AB" would become "AB" "000" would become "0" "0" would become "0" 另一个SO线程解释了如何做我想做的事情,但是我认为我在使用R中的解决方案时语法不是很正确。而且我不太了解下面第一和第二解决方案之间的区别(如果他们确实有效)。 …
9 r  regex  string  gsub  stringr 

6
匹配和删除重复的字符:替换多个(3+)非连续出现的字符
我正在寻找一个regex与每个字符的第三,第四,...匹配的模式。请看下面的说明: 例如,我有以下字符串: 111aabbccxccybbzaa1 我想在第二次出现后替换所有重复的字符。输出将是: 11-aabbccx--y--z--- 到目前为止,我尝试过一些正则表达式模式: 使用以下正则表达式,我可以找到每个字符的最后一次出现: (.)(?=.*\1) 或使用此方法,我可以将其用于连续重复,但不能重复: ([a-zA-Z1-9])\1{2,}
9 python  r  regex  string 

3
如何有效地排序R中字符串中的字符?
如何有效地对向量中每个字符串的字符进行排序?例如,给定一个字符串向量: set.seed(1) strings <- c(do.call(paste0, replicate(4, sample(LETTERS, 10000, TRUE), FALSE)), do.call(paste0, replicate(3, sample(LETTERS, 10000, TRUE), FALSE)), do.call(paste0, replicate(2, sample(LETTERS, 10000, TRUE), FALSE))) 我编写了一个函数,该函数将每个字符串拆分为一个向量,对向量进行排序,然后折叠输出: sort_cat <- function(strings){ tmp <- strsplit(strings, split="") tmp <- lapply(tmp, sort) tmp <- lapply(tmp, paste0, collapse = "") tmp <- unlist(tmp) return(tmp) } sorted_strings <- sort_cat(strings) 但是,我需要将其应用到的字符串向量很长,并且此功能太慢。有没有人对如何提高性能有任何建议?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.