标签: const-char

如何从int转换为char*?

我知道的唯一方法是:

#include <sstream>
#include <string.h>
using namespace std;

int main() {
  int number=33;
  stringstream strs;
  strs << number;
  string temp_str = strs.str();
  char* char_type = (char*) temp_str.c_str();
}
Run Code Online (Sandbox Code Playgroud)

但是有没有更少打字的方法?

c++ integer const-char

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

如何在C中将const char*转换为char*?

在我的项目中有一个方法只返回一个const char*,而我需要一个char*字符串,因为API不接受const char*.

知道怎么转换const char*char*

c pointers const-char

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

是strtol,strtod不安全吗?

似乎strtol()并且strtod()有效地允许(并强制)你在字符串中抛弃constness:

#include <stdlib.h>
#include <stdio.h>

int main() {
  const char *foo = "Hello, world!";
  char *bar;
  strtol(foo, &bar, 10); // or strtod(foo, &bar);
  printf("%d\n", foo == bar); // prints "1"! they're equal
  *bar = 'X'; // segmentation fault
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

上面,我自己没有演出.然而,strtol()基本上把我const char *变成了一个char *对我来说,没有任何警告或任何东西.(事实上,它不会让你输入barconst char *,所以迫使类型的不安全的变化.)是不是真的很危险?

c const const-char std c-strings

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

是否适合在头文件中将值设置为"const char*"

我见过人们使用2种方法来声明和定义char *.

Medhod 1:头文件如下

extern const char* COUNTRY_NAME_USA = "USA";
Run Code Online (Sandbox Code Playgroud)

Medhod 2:
头文件具有以下声明:

extern const char* COUNTRY_NAME_USA;
Run Code Online (Sandbox Code Playgroud)

cpp文件具有以下定义:

extern const char* COUNTRY_NAME_USA = "USA";
Run Code Online (Sandbox Code Playgroud)
  1. 方法1在某种程度上是错误的吗?
  2. 两者有什么区别 ?
  3. 我理解" const char * const var"和" const char * var" 之间的区别.如果在上面的方法中,如果const char * const var在方法1中声明和定义标题中的" "是否有意义?

c++ const-char effective-c++

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

Python到C/C++ const char的问题

我正在使用一些C++代码扩展Python.

我使用的其中一个功能有以下签名:

int PyArg_ParseTupleAndKeywords(PyObject *arg, PyObject *kwdict,
                                char *format, char **kwlist, ...);
Run Code Online (Sandbox Code Playgroud)

(链接:http://docs.python.org/release/1.5.2p2/ext/parseTupleAndKeywords.html)

感兴趣的参数是kwlist.在上面的链接中,给出了如何使用此功能的示例.在示例中,kwlist看起来像:

  static char *kwlist[] = {"voltage", "state", "action", "type", NULL};
Run Code Online (Sandbox Code Playgroud)

当我使用g ++编译它时,我收到警告:

warning: deprecated conversion from string constant to ‘char*’
Run Code Online (Sandbox Code Playgroud)

所以,我可以将静态char*更改为静态const char*.不幸的是,我无法更改Python代码.因此,通过此更改,我得到了不同的编译错误(无法将char**转换为const char**).根据我在这里阅读的内容,我可以打开编译器标志来忽略警告,或者我可以将kwlist定义中的每个常量字符串转换为char*.目前,我正在做后者.有什么其他解决方案?

对不起,如果之前已经问过这个问题.我是新来的.

c python const-char

8
推荐指数
1
解决办法
1282
查看次数

使用char*作为std :: map中的键,它是如何工作的

这个问题直接与使用char作为stdmap中的键有关.

我理解传入的比较函数的作用以及为什么char *类型作为键需要它.但是,我不确定更新实际上是如何工作的.

我很好奇你要更新密钥的情况.如何std::map知道如何比较之间的相等性const char *,cmp_str只告诉map将键插入到树中的顺序.

我已经对stl_tree.h代码进行了一些挖掘(从这里开始),但是找不到多少.我唯一的猜测是它做了直接记忆比较.

我对underling stl_tree类如何处理这种情况感兴趣,或者它是否一直没有正确处理它,什么边缘情况会破坏?

#include <map>
#include <iostream>
#include <cstring>

struct cmp_str
{
    bool operator()(char const *a, char const *b)
    {
        return std::strcmp(a, b) < 0;
    }
};

int main ( int argc, char ** argv )
{

    std::map<const char*, int, cmp_str> map;

    map["aa"]  = 1;
    map["ca"]  = 2;
    map["ea"]  = 3;
    map["ba"]  = 4;

    map["ba"]  = 5;
    map["bb"] …
Run Code Online (Sandbox Code Playgroud)

c++ const-char stdmap map

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

printf问题与const char*变量

我陷入了printf问题.如果我能在这里得到一些帮助,我将不胜感激:在下面的代码中,我可以看到字体系列在第一个printf()中被正确替换,但是如果我将它设置为变量,我只得到一个空字符串.如何将其放入变量并具有正确的值?我只是不想输入'font.family().family().string().utf8().data()'到处都是?

我用同样的方法做了这个:

void myMethod() {
      const char* fontFamily = font.family().family().string().utf8().data();
      // get displayed correctly
      printf ("drawText1 %s \n", font.family().family().string().utf8().data());
      // get an empty string
      printf ("drawText2 %s \n", fontFamily);
}
Run Code Online (Sandbox Code Playgroud)

而'data()'的签名是

class CString {
public:
    CString() { }
    CString(const char*);
    CString(const char*, unsigned length);
    CString(CStringBuffer* buffer) : m_buffer(buffer) { }
    static CString newUninitialized(size_t length, char*& characterBuffer);

    const char* data() const;
 //...

}
Run Code Online (Sandbox Code Playgroud)

utf8()的签名是

class String {
 CString utf8() const;
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

c++ printf const-char

6
推荐指数
1
解决办法
7257
查看次数

C++:将类型为const char*的字符串文字传递给字符串参数

我是c ++的新手,并且缺乏理解为什么这段代码运行良好:

string GetString(string promt)
{
    cout << promt << ": ";
    string temp;
    getline(cin, temp); 
    return temp; 
}

int main()
{
    string firstName = GetString("Enter your first name"); 
    string lastName = GetString("Enter your last name");

    cout<< "Your Name is: " << firstName << " " << lastName; 


    cin.ignore(); 
    cin.get(); 

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

像"bla"这样的字符串文字是类型const char*.至少auto i ="bla"; 表示我是Type"const char*".为什么可以将它传递给GetString-Function,因为函数需要一个字符串而不是一个const char*?

c++ string const-char

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

自动创建文件名C++

我正在尝试用C++编写一个程序,它创建一些文件(.txt)并将结果写入其中.问题是这些文件的数量在开始时没有固定,只出现在程序结束附近.我想将这些文件命名为"file_1.txt","file_2.txt",...,"file_n.txt",其中n是整数.

我不能使用连接,因为文件名需要类型"const char*",我没有找到任何方法将"字符串"转换为此类型.我没有通过互联网找到任何答案,如果你帮助我,我会非常高兴.

c++ const-char file names

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

GetLogicalDriveStrings()和char - 我在哪里做错了

我想搜索可能存在的任何驱动器,如C文件:\ d:\等使用GetLogicalDriveStrings,我可以能够得到驱动器的列表,但是当我添加任何额外的输出,我得到一个null在输出提示.这是我的代码:

#include "StdAfx.h"
#include <windows.h>
#include <stdio.h>
#include <conio.h>

// Buffer length
DWORD mydrives = 100;
// Buffer for drive string storage
char lpBuffer[100];
const char *extFile = "text.ext";

// You may want to try the wmain() version
int main(void)
{
    DWORD test;
    int i;
    test = GetLogicalDriveStrings(mydrives, (LPWSTR)lpBuffer);
    if(test != 0)
    {
        printf("GetLogicalDriveStrings() return value: %d, Error (if any): %d \n", test, GetLastError());
        printf("The logical drives of this machine are:\n");
        // Check up to …
Run Code Online (Sandbox Code Playgroud)

c++ msdn const-char char

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

标签 统计

const-char ×10

c++ ×7

c ×3

c-strings ×1

char ×1

const ×1

effective-c++ ×1

file ×1

integer ×1

map ×1

msdn ×1

names ×1

pointers ×1

printf ×1

python ×1

std ×1

stdmap ×1

string ×1