标签: cstring

如何从C字符串中删除第一个字符?

谁能帮帮我吗?我需要删除C中的第一个字符char *.

例如, char * contents包含一个'\n'字符作为数组中的第一个字符.我需要检测并消除这个字符,在它被"消毒"后修改原始变量.

任何人都可以帮我代码吗?我对C完全不熟悉,似乎无法弄明白.

c string cstring

21
推荐指数
3
解决办法
7万
查看次数

g ++ 4.6根据头文件cstring的要求不发出<bits/c ++ config.h>文件

bits/c++config.hcstring头文件所需的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

什么地方出了错?

c++ g++ clang cstring clang++

20
推荐指数
1
解决办法
3万
查看次数

CString到char*

我们在大多数代码中都使用CString类.但有时我们需要转换为char*.目前我们一直在使用variable.GetBuffer(0)这样做,这似乎有效(这主要发生在将Csting传递给函数需要char*的函数中).该功能接受了这一点,我们继续前进.

然而,我们最近担心这是如何工作的,以及是否有更好的方法来做到这一点.

我理解它的工作方式是它将一个char指针传递给指向CString中第一个字符的函数,并且一切正常.

我猜我们只是担心内存泄漏或任何不可预知的情况,这可能不是一个好主意.

c++ mfc memory-leaks cstring

17
推荐指数
2
解决办法
3万
查看次数

如何使用c ++将字符串散列为int?

我必须编写自己的哈希函数.如果我想制作简单的哈希函数,将字符串中的每个字母映射到一个数值(即a = 1,b = 2,c = 3,...),有没有办法可以执行此哈希一个字符串,而不必先将其转换为一个c字符串来查看每个字符?是否有更有效的散列字符串方法?

c++ string hash cstring

16
推荐指数
4
解决办法
4万
查看次数

Matplotlib,savefig()的替代品,以便在保存到CString对象时提高性能?

我正在努力加快将图表保存到图像的过程.现在我正在创建一个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后端.

谢谢!

python performance plot matplotlib cstring

16
推荐指数
1
解决办法
1万
查看次数

UTF-8,CString和CFile?(C++,MFC)

我目前正在开发一个专门用于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)

c++ mfc utf-8 cstring cfile

15
推荐指数
2
解决办法
3万
查看次数

在C#中帮助\ 0终止字符串

我正在使用低级本机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)

所以显然我做得不对,我怎么摆脱多余的?

c# string cstring

15
推荐指数
4
解决办法
3万
查看次数

iPhone stringWithCString已弃用

我使用此代码从sqlite数据库中读取数据:

keyFromSql = [NSString stringWithCString:(char *)sqlite3_column_text(preparedStatement, 1)];
Run Code Online (Sandbox Code Playgroud)

但是编译器给了我在标题中写的警告......那么,从sqlite中检索值的正确而不是弃用的方法是什么?

谢谢!

sqlite string iphone cstring deprecated

13
推荐指数
2
解决办法
2万
查看次数

在c ++中将String转换为Cstring

我是字符串来转换它string="apple",并希望把它放入这种风格的c字符串,这char *c是成立{a,p,p,l,e,'\0'}.我应该使用哪种预定义方法?谢谢你.

c++ string cstring

13
推荐指数
2
解决办法
10万
查看次数

在C++中定义常量C字符串的正确方法?

大多数时候我看到常量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)

我认为有两个像这样的常量全局变量的目标:

  1. 不允许修改字符串
  2. 不要让变量指向其他任何东西

我只是假设在定义常量字符串时需要这两个目标.

另一个有趣的事情是我被允许这样做:

int main()
{
    auto MY_CONSTANT = "";
    MY_CONSTANT = "Another String";
}
Run Code Online (Sandbox Code Playgroud)

这告诉我,auto推断字符串char const*是否char const* const.

所以我有两个主要问题:

  1. 定义常量c风格字符串的最合适方法是什么(我认为常量指针指向某事,是更普遍的问题?).为什么选择其中一个?
  2. 关于我的例子auto,它选择的char const*原因是有道理的(因为它是恒定的数据数组,而不是指针本身).我可以auto推断或者我char const* const可以更改代码以使其产生这样的类型吗?

c++ const cstring auto c++11

13
推荐指数
1
解决办法
5970
查看次数

标签 统计

cstring ×10

c++ ×6

string ×5

mfc ×2

auto ×1

c ×1

c# ×1

c++11 ×1

cfile ×1

clang ×1

clang++ ×1

const ×1

deprecated ×1

g++ ×1

hash ×1

iphone ×1

matplotlib ×1

memory-leaks ×1

performance ×1

plot ×1

python ×1

sqlite ×1

utf-8 ×1