- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
库函数strspn
的定义是:
size_t strspn(const char *str, const char *chars)
/* Return number of leading characters at the beginning of the string `str`
which are all members of string `chars`. */
例如如果 str
是 "fecxdy"
并且 chars
是 "abcdef"
那么该函数将返回 3
,因为 f
、e
和 c
都出现在 chars
的某处,给出了 的 3 个前导字符code>str
,x
是 str
的第一个字符,它不是 chars
的成员。
谁能帮我用 C 语言编写 strspn
的实现。我唯一可以从实现中调用的库函数是 strlen
?
最佳答案
基本思想是逐步遍历字符串,一次一个字符,并测试它是否在字符集中。如果不是,则停止并返回答案。在伪代码中,它看起来像:
count = 0
for each character c in str
if c is not in chars
break
count++
return count
if c is not in chars
测试可以通过遍历 chars
的所有字符并测试 c
是否匹配任何字符来实现的字符。请注意,这不是最快的实现,因为它涉及为 str
中的每个字符单步执行 chars
字符串。更快的实现将使用查找表来测试 c 是否不在字符中
。
关于c - strspn( ) 的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/813914/
库函数strspn的定义是: size_t strspn(const char *str, const char *chars) /* Return number of leading charact
libc_hidden_builtin_def (strspn) 我在 glibc-2.18/string/strspn.c 中找到了上面的代码。谁能解释一下这是什么意思。这对其余代码重要吗?以下是文
这是我做的一个程序: #include #include using namespace std; int main() { char frase1 [100]; char fra
我正在尝试创建一个类似于 std::string 的自定义字符串类。 而且我在实现“find_first_not_of”时遇到了麻烦。 这是我的测试代码 #include class String
我正在编写一个程序,逐行读取文件以将单词和翻译分开。下面的代码有效。但是,我无法理解 /* separate word and translation */ 部分的 load_dictionary 函
我是一名优秀的程序员,十分优秀!