问题标签 [c-strings]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
804 浏览

c - 计算给定句子中组成单词的字母

我正在尝试编写一个程序来查找给定句子中存在多少个 1 个字母、2 个字母、3 个字母、4 个字母的单词,我终于想出了一些代码。但是,有一个问题。代码已经编译成功,但是在运行时,程序失败并退出,没有结果。

0 投票
3 回答
22909 浏览

qt - 将 Qt 默认编码设置为 UTF-8

在我的 Qt 应用程序中,我的源代码文件被编码为 UTF-8。对于以下代码...

...当我显示该消息框时,字符“š”不会显示为“š”,而是显示为奇怪的东西。这是因为 Qt 转换所有 C 字符串,就好像它们是使用 LATIN-1 编码的一样。为了解决这个问题,我一直在使用:

有没有办法摆脱所有的电话QString::fromUtf8()

0 投票
4 回答
3088 浏览

c - memset + 空格 + memcpy

我如何将一个大小为 100 的字符数组设置为空白,然后将 10 个宪章复制到其他相同的字符串。例如:

有一个 char 数组 a[100] 要做的事情:将其全部设置为空白

现在有另一个数组:b[10](假设它填充了一些长度为 9 的字符串)要做:将此数组复制到前一个

但是我没有得到我在复制 10 个字符后设置的空间。

0 投票
2 回答
1978 浏览

c - C For 循环不工作?

我正在将 C 中的字符串用作字符数组,并且我试图确保我可以动态地将值传递到我的 for 循环中。

以下代码有效,没问题:

事实上,这段代码也有效:

但由于某种原因,这段代码不打印任何东西:

我已经检查了这两个值-strlen(fragments[2]) + 1strlen(fragments[1])循环之前的值,它们分别检查到 -6 和 11。显然,当我将这些值直接放入它们的位置时,循环有效,但是当我用strlen计算替换第二个时,它会中断,我无法弄清楚为什么我的生活。帮助?

编辑

OverlapStrength 将其参数作为常量,因此我无法更改它们,因此我很确定我不会在进行过程中更改片段。这是方法声明:

片段的内容不应该很重要,但它们只是我试图从重叠的片段中拼凑起来的字符串。我已经检查了我的片段是否都正确输出,并且在声明此循环之外完成时,它们的长度是否正确计算。

0 投票
4 回答
19819 浏览

c - 你如何在 c 中迭代一个字符数组的数组?

您是否必须手动遍历数组一次并获取每个字符数组的 strlen 计数,对其求和,用求和值分配目标,然后再次遍历数组?

如何找到包含字符数组的数组的大小,以便对它们进行迭代?

0 投票
4 回答
967 浏览

c++ - C/C++ 字符串转移到特定元素 - 最少可能的步骤

这是我的困境。

我有例如这个字符串:

"1 2 3 4 5 ..... 100" ,但它可以是任意长度(通常要大得多,指的是 4 位数字)。

我需要做的:根据已知位置重新排列字符串的元素。例如:有问题的位置是 70。我需要有以下输出:“70 71 ....100 1 2 3 ...69”

条件:

  1. 我知道关键:例如上面的“70”。也可以是500、5000,取决于字符串的长度。
  2. 我不能使用任何字符串缓冲区或字符串管理功能。
  3. 几乎没有可用的内存。
  4. 有两个可用的 1 字节缓冲区。
  5. 操作应以尽可能少的步骤(时间紧迫)完成。

我一直在尝试找到一种不依赖于字符串中键位置的好算法。基本上左/右移动取决于我仍然可以进行很多读/写,我不希望这样。

非常感谢!

0 投票
2 回答
213 浏览

c - 字符串文字是否恒定?

可能重复:
是否可以在 C 中修改 char 字符串?

这像一个常量指针吗?当我尝试通过写入来更改位置 3 中的字符时s[3]='k',它给了我一个分段错误。所以我假设它就像指向一个常量数组或者 s 是一个常量指针?两者中的哪一个?请说清楚。

0 投票
4 回答
434 浏览

c - 在 C 函数中传递字符串

我在 C 编程中有以下问题。

我有一个字符串数组存储为单词 [10] [50]。我想从数组中提取每个字符串,然后将其传递给另一个函数。我尝试了以下方法:

这会在编译期间创建异常。现在我认为,当我使用“printf”语句时,这个命名法可以正常工作 ii words[i] 从二维单词数组中打印字符串“i”。当我尝试用检查功能做同样的事情时,就会发生错误。

soemone 可以指出我如何做到这一点吗?

PS 请忽略程序效率方面的任何错误等。我需要你的帮助,这只是一个学习字符串传递给函数的测试程序谢谢

0 投票
5 回答
20804 浏览

c++ - C-String array initialization - is this mutable?

Possible Duplicate:
Modifying C string constants?
Pointer to const char vs char array vs std::string

I know I'm probably beating the dead horse with this question, but I'm a little confused and I haven't managed to find an exact answer on SO or google (that I'm confident is right - there's just too much information on C-strings to sift through). Also, I've tagged it C++ because that's what I'm interested in, even though we're talking about C-style strings specifically.

In this situation:

I would have thought that "hello" and "goodbye" were both immutable strings because they come from string-literals that should decay to a char const*.

I've seen that in this particular case though, changing "hello" would be undefined while changing "goodbye" would be fine, assuming you stripped the constness from the b-array.

I assume that the string is mutable in the case of b due to the fact that its stored in a user-defined array.

Are hello and goodbye different in this case? Is goodbye not a string-literal for some reason given this example. Also, if goodbye isn't a string-literal, can I assume it isn't held in global memory, and the only reference to it after compile time is that which is left in the user-array cells?

0 投票
4 回答
979 浏览

c++ - 在 getline cstring 分配后了解初始用户输入

这是我的一个 C++ 函数:

显然,while 循环永远不会起作用,因为用户输入每次都被截断为 12 个字符。

如何有效判断用户输入是否过长,并继续循环直到满足条件?

编辑:在此处 使用cstring是一项要求。我已经知道使用字符串是多么容易。

编辑#2:这对我来说绝对是一个富有成果的问题,因为它教会了我很多东西。最终代码: http: //pastie.org/3537894