c-strings相关内容

TRIM函数是否将内存大小减半以删除空格?

我必须创建一个可以执行此任务的函数(Trim函数):获取一个以空结尾的字符串,如果该字符串的第0位有空格,则删除该空格。如果空格在字符串的末尾(在零终止符之前),情况也是一样。因此,该函数基本上忽略了字符串中间的空格。 这是我到目前为止尝试做的事情, (1)我将";a b";字符串传递给Trim函数。 (2)(空指针检查)。 (3)使用strlen函数获取字符串的长度。 ..

C++中数组的链接列表

我在将数组指定为链表元素时遇到问题。我试着把字符改成字符*但对我没有帮助。我真的很感激你的名字 在这里我创建了一个结构 struct node{ char data; struct node *next; }; 并添加了此函数以添加新节点 void addLast(struct node **head, char val) { //create a new node struct ..
发布时间:2022-08-15 13:07:21 其他开发

Scanf只读句子中的一个单词

我是C的新手,我有一个小问题。我需要编写一个程序,用户在其中输入文本,程序会显示文本的长度。 我尝试了strlen(),但这不是我想要的。 char a[20]; scanf("%s",a) 如果我键入";Hello world";,结果是5,但我需要11。 我需要使用scanf,但可能无法使用它... 推荐答案 此调用 scanf("%s" ..
发布时间:2022-06-29 16:03:21 其他开发

为什么不推荐使用gets()?

在我的代码中使用 gets() 时,编译器会喊叫 警告:“gets"功能很危险,不应使用.` 和 警告:'gets' 已弃用(在/usr/include/stdio.h:638 声明)[-Wdeprecated-declarations] 有什么具体原因吗? 解决方案 谁能解释一下为什么编译器会这样显示...? 是的,因为 gets() 函数很危险,因为它存在缓冲区溢出问 ..
发布时间:2022-01-25 18:22:32 其他开发

ATL CString 到字符数组的转换

我想转换 CString 转换成 char[].有人告诉我该怎么做? 我的代码是这样的: CString strCamIP1 = _T("");字符 g_acCameraip[16][17];strCamIP1 = theApp.GetProfileString(strSection, _T("IP1"), NULL);g_acCameraip[0] = strCamIP1; 解决方案 ..
发布时间:2022-01-12 20:54:41 C/C++开发

何时/为什么需要 '\0' 来标记 (char) 数组的结尾?

所以我刚刚阅读了一个关于如何创建表示字符串的字符数组的示例. 将空字符\0 放在数组的末尾,以标记数组的末尾.这是必要的吗? 如果我创建了一个 char 数组: 字符行[100]; 并输入单词: "你好\n" 在其中,字符将被放置在前六个索引 line[0] - line[6] 处,因此数组的其余部分将被填充还是空字符? 这本书说,这是一个约定,例如将字符串常量 "hel ..
发布时间:2022-01-12 20:18:19 其他开发

写入 c 字符串

我的代码段错误,我不知道为什么. 1 #include 23 无效覆盖(字符 str[],字符 x){4个整数i;5 for (i = 0; str[i] != '\0'; i++)6 str[i] = x;7 }89 int main(void) {10 字符 *s = "abcde";11 字符 x = 'X';12 次覆盖(s,x);13 printf("%s\n", ..
发布时间:2022-01-12 16:26:38 其他开发

将 c# 中的 String^ 转换为 c++/CLI 中的 CString

我需要帮助解决在 MFC 中编写应用程序时遇到的一个问题. 我在我的应用程序中使用 CLR 即 Common Language Runtime 来集成 c# API.但现在我坚持将 System::String^ 转换为 CString.我做不到. 我正在使用以下代码. String^ csPass = gcnew String(strPassword.GetBuffer());数组 ..
发布时间:2022-01-12 14:25:28 C#/.NET

在带引号的字符串中展开宏

可能重复: C 宏创建字符串 我有一个函数,它接受一个 char* 类型的参数,例如 f("string"); 如果字符串参数是在函数调用中动态定义的,如何在字符串体中展开宏? 例如: #define COLOR #00ff00f("abc 颜色"); 相当于 f("abc #00ff00"); 但是不执行扩展,函数接收字面意思是abc COLOR. 特别是,我需要将 ..
发布时间:2022-01-11 20:02:23 其他开发

std::string::c_str() 结果的生命周期是多少?

在我的一个程序中,我必须与一些使用 const char* 的遗留代码交互. 假设我有一个如下所示的结构: struct Foo{const char* 服务器;const char* 名称;}; 我的上层应用只处理std::string,所以想到了用std::string::c_str()来取回const char* 指针. 但是 c_str() 的生命周期是多少? 我可以 ..
发布时间:2021-12-05 15:02:22 C/C++开发

字符数组应该如何用作字符串?

我知道 C 中的字符串只是字符数组.所以我尝试了下面的代码,但它给出了奇怪的结果,例如垃圾输出或程序崩溃: #include int main (void){char str [5] = "你好";把(字符串);} 为什么这不起作用? 它使用 gcc -std=c17 -pedantic-errors -Wall -Wextra 干净利落地编译. 注意:这篇文章旨在作为规范的常见问 ..
发布时间:2021-12-02 08:13:45 其他开发

何时/为什么需要 '\0' 来标记(字符)数组的结尾?

所以我刚刚阅读了一个关于如何创建表示字符串的字符数组的示例. 空字符\0放在数组的末尾,以标记数组的结尾.这是必要的吗? 如果我创建了一个字符数组: 字符行[100]; 然后输入: "你好\n" 在其中,字符将放置在前六个索引line[0] - line[6],因此数组的其余部分将填充无论如何都是空字符? 这本书说,这是一个约定,例如将字符串常量"hello\n" 放入字 ..
发布时间:2021-11-18 03:39:32 其他开发

如果 char*s 是只读的,为什么我可以覆盖它们?

我的课程告诉我 char*s 是静态的/只读的,所以我认为这意味着你在定义它们后无法编辑它们.但是当我跑步时: char*fruit = "banana";printf("水果是 %s\n", 水果);水果 = "苹果";printf("水果是 %s\n", 水果); 然后它编译得很好并给了我: 水果是香蕉水果是苹果 为什么?我是否误解了只读意味着什么?对不起,如果这很明显,但我是编码新手 ..
发布时间:2021-11-18 03:00:13 其他开发