谁能帮帮我吗?我需要删除C中的第一个字符char *.
例如, char * contents包含一个'\n'字符作为数组中的第一个字符.我需要检测并消除这个字符,在它被"消毒"后修改原始变量.
任何人都可以帮我代码吗?我对C完全不熟悉,似乎无法弄明白.
bits/c++config.h在cstring头文件所需的c ++ include目录中没有调用文件.但是当我包含标题cstring并编译时g++,它不会给我错误.当我尝试使用clang++ 编译器以下列方式编译程序时,问题就出现了.
$clang++ -cc1 -I/usr/include -I/usr/include/c++/4.6.1 -I/usr/lib/gcc/i686-linux-gnu/4.6.1 -I/usr/include/i386-linux-gnu -I opt_149739_build/include hello.cpp
In file included from /media/space/hello.cpp:2:
In file included from /media/space/opt_149739_build/include/clang/Driver/Driver.h:13:
In file included from /media/space/opt_149739_build/include/clang/Basic/Diagnostic.h:17:
In file included from /media/space/opt_149739_build/include/clang/Basic/DiagnosticIDs.h:18:
In file included from /media/space/opt_149739_build/include/llvm/ADT/StringRef.h:14:
/usr/include/c++/4.6.1/cstring:42:10: fatal error: 'bits/c++config.h' file not found
#include <bits/c++config.h>
Run Code Online (Sandbox Code Playgroud)
我在Ubuntu 11.04上使用g ++ 4.6.1
什么地方出了错?
我们在大多数代码中都使用CString类.但有时我们需要转换为char*.目前我们一直在使用variable.GetBuffer(0)这样做,这似乎有效(这主要发生在将Csting传递给函数需要char*的函数中).该功能接受了这一点,我们继续前进.
然而,我们最近担心这是如何工作的,以及是否有更好的方法来做到这一点.
我理解它的工作方式是它将一个char指针传递给指向CString中第一个字符的函数,并且一切正常.
我猜我们只是担心内存泄漏或任何不可预知的情况,这可能不是一个好主意.
我必须编写自己的哈希函数.如果我想制作简单的哈希函数,将字符串中的每个字母映射到一个数值(即a = 1,b = 2,c = 3,...),有没有办法可以执行此哈希一个字符串,而不必先将其转换为一个c字符串来查看每个字符?是否有更有效的散列字符串方法?
我正在努力加快将图表保存到图像的过程.现在我正在创建一个cString对象,我使用savefig保存图表; 但我真的非常感谢任何帮助改进这种保存图像的方法.我必须做几十次这个操作,而savefig命令非常慢; 必须有更好的方法.我读了一些关于将其保存为未压缩的原始图像的内容,但我不知道如何做到这一点.如果我可以切换到另一个更快的后端,我真的不关心agg.
即:
RAM = cStringIO.StringIO()
CHART = plt.figure(....
**code for creating my chart**
CHART.savefig(RAM, format='png')
Run Code Online (Sandbox Code Playgroud)
我一直在使用matplotlib和FigureCanvasAgg后端.
谢谢!
我目前正在开发一个专门用于UTF-8的MFC程序.在某些时候,我必须将UTF-8数据写入文件中; 要做到这一点,我正在使用CFiles和CStrings.
当我将utf-8(俄语字符,更准确)数据写入文件时,输出看起来像
Ðàñïå÷àòàíî:
Ñèñòåìà
Ïðîèçâîäñòâî
Run Code Online (Sandbox Code Playgroud)
等等.这绝对不是utf-8.要正确读取这些数据,我必须更改我的系统设置; 将非ASCII字符更改为俄语编码表确实有效,但随后我所有基于拉丁语的非ascii字符都会失败.无论如何,我就是这样做的.
CFile CSVFile( m_sCible, CFile::modeCreate|CFile::modeWrite);
CString sWorkingLine;
//Add stuff into sWorkingline
CSVFile.Write(sWorkingLine,sWorkingLine.GetLength());
//Clean sWorkingline and start over
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?我应该用别的东西吗?我错过了什么样的捕获?我会为你的智慧和经验而努力,和其他程序员一样.
编辑:当然,正如我刚问了一个问题,我终于找到了一些可能有趣的东西,可以在这里找到.以为我可能会分享它.
编辑2:
好的,所以我将BOM添加到我的文件中,该文件现在包含chineese字符,可能是因为我没有将我的行转换为UTF-8.添加bom我做了...
char BOM[3]={0xEF, 0xBB, 0xBF};
CSVFile.Write(BOM,3);
Run Code Online (Sandbox Code Playgroud)
之后,我补充说......
TCHAR TestLine;
//Convert the line to UTF-8 multibyte.
WideCharToMultiByte (CP_UTF8,0,sWorkingLine,sWorkingLine.GetLength(),TestLine,strlen(TestLine)+1,NULL,NULL);
//Add the line to file.
CSVFile.Write(TestLine,strlen(TestLine)+1);
Run Code Online (Sandbox Code Playgroud)
但后来我无法编译,因为我真的不知道如何获得TestLine的长度.strlen似乎不接受TCHAR. 固定,使用1000的静态长度.
编辑3:
所以,我添加了这段代码......
wchar_t NewLine[1000];
wcscpy( NewLine, CT2CW( (LPCTSTR) sWorkingLine ));
TCHAR* TCHARBuf = new TCHAR[1000];
//Convert the line to UTF-8 multibyte.
WideCharToMultiByte (CP_UTF8,0,NewLine,1000,TCHARBuf,1000,NULL,NULL);
//Find how many …Run Code Online (Sandbox Code Playgroud) 我正在使用低级本机API,我发送一个不安全的字节缓冲区指针来获取一个c-string值.
所以它给了我
// using byte[255] c_str
string s = new string(Encoding.ASCII.GetChars(c_str));
// now s == "heresastring\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0(etc)";
Run Code Online (Sandbox Code Playgroud)
所以显然我做得不对,我怎么摆脱多余的?
我使用此代码从sqlite数据库中读取数据:
keyFromSql = [NSString stringWithCString:(char *)sqlite3_column_text(preparedStatement, 1)];
Run Code Online (Sandbox Code Playgroud)
但是编译器给了我在标题中写的警告......那么,从sqlite中检索值的正确而不是弃用的方法是什么?
谢谢!
我是字符串来转换它string="apple",并希望把它放入这种风格的c字符串,这char *c是成立{a,p,p,l,e,'\0'}.我应该使用哪种预定义方法?谢谢你.
大多数时候我看到常量C字符串定义为:
static char const* MY_CONSTANT = "Hello World";
Run Code Online (Sandbox Code Playgroud)
但是,指针本身不是const.像下面这样做是不是更合适?
static char const* const MY_CONSTANT = "Hello World";
Run Code Online (Sandbox Code Playgroud)
我认为有两个像这样的常量全局变量的目标:
我只是假设在定义常量字符串时需要这两个目标.
另一个有趣的事情是我被允许这样做:
int main()
{
auto MY_CONSTANT = "";
MY_CONSTANT = "Another String";
}
Run Code Online (Sandbox Code Playgroud)
这告诉我,auto推断字符串char const*是否char const* const.
所以我有两个主要问题:
auto,它选择的char const*原因是有道理的(因为它是恒定的数据数组,而不是指针本身).我可以auto推断或者我char const* const可以更改代码以使其产生这样的类型吗?