c-strings相关内容
当我在C ++中组合一个大写字母函数时,我注意到我没有收到C中的预期输出。 C ++函数 #include #include #include void strupp(char * beg) { while(* beg ++ = std :: toupper(* beg) } int main(i
..
我写了一个DLL,创建一个ATL CString对象。我使用“Visual Studio 2015 - Windows XP(v140_xp)”平台工具集在Visual Studio 2015中编译。使用LoadLibrary / GetProcAddress加载DLL。 在分配字符串对象时,在CAtlStringMrg :: GetInstance中,它在Windows XP下崩溃。
..
我写了一个DLL,创建一个ATL CString对象。我使用“Visual Studio 2015 - Windows XP(v140_xp)”平台工具集在Visual Studio 2015中编译。使用LoadLibrary / GetProcAddress加载DLL。 在分配字符串对象时,在CAtlStringMrg :: GetInstance中,它在Windows XP下崩溃。
..
可能重复: 修改C字符串常量? 指针const char vs char数组vs std :: string 我知道我可能正在用这个问题打死死马,但我有点困惑,我没有设法找到一个确切的答案对SO或谷歌(我有信心是正确的 - 只是太很多关于C字符串筛选的信息)。此外,我已经标记了C ++,因为这是我感兴趣的,即使我们在谈论C风格的字符串。 在这种情况下: / p> c
..
对于常规C字符串,一个空字符'\0'表示数据的结尾。 std :: string ,我可以有一个带有嵌入空字符的字符串吗? 解决方案 是的,您可以在 std :: string 中嵌入null。 示例: std :: string s; s.push_back('\0'); s.push_back('a'); assert(s.length()== 2)
..
请考虑代码: struct Foo { const char str [] =“test “; }; int main() { Foo foo; } 无法使用g ++和clang ++编译, > 错误:无法从类初始化器中推导出数组约束 我知道这是标准可能说的,原因?因为我们有一个字符串字面量,似乎编译器
..
“应始终使用超过c风格的 std :: string 字符串( char * )“是几乎每个在这里发布的源代码的建议。虽然建议毫无疑问是好的,但正在解决的实际问题不允许详细阐述建议的为什么?方面。这个问题是作为一个占位符。 一个好的答案应该涵盖以下方面(详细): 为什么应该在C ++中对c风格字符串使用 std :: string ? #1 中提及的做法有什么缺点(如果有的话)?
..
有鉴于此code 的char * s =“阿巴斯”; 的printf(“%S”,S + S [1] - S [3]); 为什么会出现这种输出? BBAS 解决方案 的char * s =“阿巴斯”; S + S [1] - S [3] S +'B' - '一' S + 1 / *假设ASCII编码。 Posibly在那里你测试的机器,(S +'B') - 'A'= S + 1
..
我需要检查,如果在我的文件中有重复条目,在C 示例文件: 的/ proc / PROC1 1000 的/ proc / PROC2 2000 的/ proc / PROC1 3000 我需要解决这样的:的/ proc / PROC1 1000 3000 的/ proc / PROC2 2000 的路径(的/ proc / proc中*)可以包括空格喜欢:/ proc中的/ proc你好
..
如何删除所有相邻重复在C.字符串地说example..if“caaabbcdd”是给定的字符串那么就应该为依次取出 1 cbbcdd 2. CCDD 3. DD 这样一个空字符串,最终返回。时间复杂度可为O(n ^ 2)starting.Can任何人的帮助。 到目前为止我我做了什么无效recursiven2(字符*海峡) { INT I,J,K,LEN; LEN = strlen的
..
我有我的C字符串替换的麻烦人物。我必须初始化为0和1的16位串C字符串名为位。我正在试图做的是转换成字符串的二进制补码的版本。我所学到的是一个简单的任务,如 INT twosComplement(INT号,字符*二进制){ 的printf(“搜索二进制补码\\ n”); INT TEMP =数量* -1; 如果(温度< -32768) 返回0;
..
的#include<&stdio.h中GT; #包括LT&;&stdlib.h中GT; #包括LT&;&string.h中GT; 焦炭兰特(字符x)的; 诠释的main() { 字符输入[80] = {0}; 焦兰多[80] = {0}; 字符选择= 0; 焦炭rando2 [80] = {0}; 如果(strlen的(输入)GT; = 10&放大器;&放大器; strlen的(输入)下;
..
我试图开发一种通过输入标记在电阻上的色带计算电阻值的C程序。 忽略电阻容差。 例如。 输入电阻器的三个频段的颜色,刚开始 与最近结束了乐队。键入小写字母的颜色 信件只,NO CAPS 波段1 =>绿色 带2 =>黑色 带3 =>黄色 电阻值:500 000 -ohms 你想脱code另一电阻(Y / N)? = GT; ÿ 显示电阻值的要求的格式。例如,如
..
注:这是C ++,但使用C风格的字符串 您好SO, 我工作的一个任务,我需要从控制台获取输入并保存到一个CString。一切编译罚款,但是当程序运行时,它只是跳过从用户获得的输入。所以它会输出:“输入要插入的字符串:”然后跳过cin.getline功能,然后执行下一个命令。 下面是我的头文件,CString的申报和code,我遇到的麻烦的就行了。 的#include“stdafx.h中”
..
字符 - [R [40]; 的strcpy(R“ABCDEF”); strcat的(R,R); 我的程序崩溃在第三行? 更换的strcat(R,R);由strcat的(R,“ABCDEF”);工作正常,虽然....这是为什么? 解决方案 的strcat()从输入,并将其复制到输出读取直到它找到一个 \\ 0 终止输入。通过指定的输入和输出在同一个阵列,正在修改的输入,同时它被读出。 您
..
虽然我是一个以大写功能放在一起在C ++中我注意到,我没有收到在C中预期的输出。 C ++函数 的#include<&iostream的GT; #包括LT&;&cctype GT; #包括LT&;&cstdio GT;无效斯特鲁普(字符* BEG) { 而(*求++ =的std :: TOUPPER(* BEG)); }INT主(INT charc,字符*的argv []) {
..
我的code段错误,我不知道为什么。 1的#include<&stdio.h中GT; 2 3无效覆盖(字符海峡[],CHAR X){ 4 INT I; 5(I = 0; STR [I] ='\\ 0';!我++) 6海峡[I] = X; 7} 8 9 INT主要(无效){ 10的char * s =“ABCDE”; 11字符X ='X'; 12重写(S,X); 13的pr
..
我定义字符串数组。它工作正常,如果我以这样的方式定义它的第一个元素是不是空字符串。当它是一个空字符串,接下来的 scanf()的为其他字符串停止读取输入字符串并计划停止执行。 现在我不明白如何通过 scanf函数定义字符串,影响读取输入的数组()。 的char * str_arr [] = {“”,“ABC”,“”,“”,“B”,“C”,“”,“”,“”}; //如果第一个元素是不是“”ABC
..
我有一个 C-活动(一Apache模块,即程序运行频率),这是会的write()通过套接字0结尾的字符串,所以我需要知道它的长度。 该字符串已经#defined为: 的#define政策“< XML版本= \\”1.0 \\“>吗?\\ n”\\ “<!DOCTYPE跨域策略SYSTEM \\ N”\\ “\\”HTTP://www.adobe.com/xml/d
..
有没有什么好的理由++使用C字符串用C时下?我的课本使用它们在某些点的例子,我真的觉得它会更容易只使用一个std :: string的。 解决方案 我不得不使用它们的唯一理由是与用C风格的字符串第三方库连接时。也可能有深奥的情况下,您会使用性能方面的原因C形式的字符串,但更多的,往往不是在使用C ++字符串的方法可能是更快,因为内联和专业化等。 您可以使用 c_str( ) 与排序的AP
..