标签: cstring

MFC C++ 如何在 MessageBox 中显示 const char 值?

我希望标题足以帮助解释需要什么。解决了这个问题后,我的大部分项目应该完成了。

当我这样做时

    char e[1000] = "HELLO";
    CString msg;
    msg.Format(_T("%s"), e);
    MessageBox(msg);
Run Code Online (Sandbox Code Playgroud)

消息框只是向我显示诸如“??????”之类的随机词 而不是我想要的“你好”。我该如何解决这个问题??

帮助将不胜感激。谢谢你

c++ mfc char cstring

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

自动类型转换为std :: string和char*之间的C++差异

作为一个学习练习,我一直在研究自动类型转换在C++中的工作原理.我知道通常应该避免自动类型转换,但我想通过了解它的工作原理来增加我对C++的了解.

我已经创建了一个StdStringConverter可以自动转换为a的类std::string,但编译器(Debian上的g ++ 4.3.4)似乎不会在将对象与real进行比较时进行转换std::string(请忽略缺少传递引用和不必要的临时对象创建):

#include <string>

class StdStringConverter
{
public:
    explicit StdStringConverter(std::string name) : m_name(name) {}
    operator const std::string () const { return m_name; }
private:
    std::string m_name;
};

int main()
{
    StdStringConverter converter(std::string("Me"));
    const std::string name = "Me";
    // Next line causes compiler error:
    // no match for 'operator==' in 'converter == name'
    return (converter == name) ? 0 : 1;
}
Run Code Online (Sandbox Code Playgroud)

在另一方面,如果我稍微改变到一个CStringConverter类,自动转换不会发生,但比较char可能的指针是不是我想要的结果:

#include <string> …
Run Code Online (Sandbox Code Playgroud)

c++ type-conversion cstring stdstring

4
推荐指数
1
解决办法
3931
查看次数

在g ++编译器中使用strlen获取数组的长度

有人可以解释为什么我在使用以下g ++编译器编译源代码时出现此错误

#include <cstdio>
#include <string>

using namespace std;

int main()
{
    char source_language[50];


    scanf("%16s\n",source_language);

    int length = sizeof(source_language);
    int sizeofchar = strlen(source_language);
    printf("%d\n",sizeofchar);
}
Run Code Online (Sandbox Code Playgroud)

这给了我以下错误

test.cpp:在函数'int main()'中:

test.cpp:31:错误:在此范围内未声明'strlen'

当我改变#include <string>#include <string.h>#include<cstring>,它工作正常,我需要弄清楚使用#include<string>和有什么区别#include<string.h>.非常感谢任何帮助

c++ string cstring strlen

4
推荐指数
2
解决办法
9247
查看次数

如何将INT64写入CString

我在c ++窗口编码.

INT64 dirID = -1;
CString querySQLStr = _T("");
querySQLStr.Format(L"select * from ImageInfo where FolderPath=%64d;", dirID);

querySQLStr always like this:
select * from ImageInfo where FolderPath=                                                            1214;
Run Code Online (Sandbox Code Playgroud)

使用%64d是对的吗?非常感谢

c++ windows mfc cstring int64

4
推荐指数
1
解决办法
7868
查看次数

UTF-8 char * 到 CString 的转换

如何将 UTF-8 char* 格式的字符串转换为 CString?

c++ utf-8 char cstring unicode-string

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

如何以较少的开销管理字符串片?

我正在处理巨型(最多2GB)字符串及其在C++程序中的切片.在这种情况下,C风格的字符串似乎不可靠,但可以简单地切片(最后没有'\ 0').另一方面,据我所知,std :: string :: substr复制了切片,因此我应该为每个索引执行至少一个额外的加法运算(索引+基数),以保持内存使用的合理性.

c++ substring cstring stdstring slice

4
推荐指数
1
解决办法
744
查看次数

自定义字符串文字

出于好奇,我想知道不同的文件如何能够分配某些符号以将它们常规的 c 字符串文字更改为其他文字。

例如...

在 Objective-C 中,NSString 文字可以写成@"..."

在 C++ 中(我认为),C++ 字符串文字是这样写的S"..."

在wchar库中,wchar_t文字是writtelL"..."

谁能告诉我如何做一个像 MyClass 文字这样的字符串#"..."

谢谢

c++ objective-c cstring wchar string-literals

4
推荐指数
1
解决办法
2077
查看次数

char*范围在C++容器中

具有以下内容:

#include <set>

std::set<const char *> global = std::set<const char *>();
void x() {
    const char *c = "a";
    const char *d = "b";

    global.insert(c);
    global.insert(d);
}

int main() {
    x();
    for (std::set<const char *>::const_iterator iter=global.begin(), end=global.end(); iter!=end; ++iter) {
        printf("%s\n", *iter);
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

最后,正如预期的那样,我收到ab打印出来.

然而,是否有任何保证,例如,如果该集合是一个bozo对象的一部分,那么它们一直持续到它bozo的生命周期结束?或者我必须strdup要确保字符串?

c++ containers cstring strdup

4
推荐指数
1
解决办法
724
查看次数

在c中打印出一串字符串的元素

我创建了一个函数,它接受一个指向C-String数组中第一个元素的指针.这是阵列,以及我如何制作它:

char element1[60] = "ubunz";
char element2[60] = "uasdasffdnz";
char* array[10] = {element1,element2};
Run Code Online (Sandbox Code Playgroud)

然后我创建了一个指向数组中第一个元素的指针:

char *pointertoarray = &array[0];
Run Code Online (Sandbox Code Playgroud)

然后我将指针传递给我做的函数:

void printoutarray(char *pointertoarray){
  int i = 0;
  while (i < 2){
    printf("\n Element is: %s \n", *pointertoarray);
    pointertoarray = pointertoarray + 1;
    i = i+1;
  }
}
Run Code Online (Sandbox Code Playgroud)

当我运行程序时,数组永远不会打印出来.

我之前在C++中完成了这个程序,但我使用了STL字符串类型,并创建了一个指向字符串数组的指针.我认为我的问题在于我在C中创建一个字符串数组的方式,以及指向它的指针.

c arrays cstring

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

多字符串连接

我是C语言和Loadrunner的新手.

如何在C中进行字符串连接

伪代码:

String second = "sec";
String fouth = "four";
System.out.println("First string" + second +"Third" + fouth);
Run Code Online (Sandbox Code Playgroud)

c cstring

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