簡體   English   中英

IntelliSense:不存在從“ std :: string”到“ char”的合適轉換函數,那么我該如何處理?

[英]IntelliSense: no suitable conversion function from “std::string” to “char” exists so how do i go about this?

字符char [[] = {value}; 部分是我遇到問題的地方

 static string Cipher(string value, int offset)
  { 
char letters[] = {value};
char DifferentLetters[] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','u','r','s','t','v','w','x','y','z'};


for (int i = 0; i < DifferentLetters[i]; i++)
{
    char letter = DifferentLetters[i];

    int defaultOffset = offset;

    if(letter > 'z')
    {
        letter = (char)(letter - defaultOffset);
    }
    else if(letter < 'a')

撇開一個更基本的問題,即為什么要做這樣的事情,這相當於您的期望

char letters[] = {value};

意思是

char letters[value.size()+1];
memcpy(letters,value.c_str(),value.size()+1);

當然,這假定使用的新版本的C ++允許在運行時調整本地C數組的大小(我忘記添加了哪個版本,但肯定不是很早的版本)。 另外,您還需要包括string.h之類的內容,以獲取memcpy的聲明。

以下內容可能是更干凈的替代方法,但與原始含義有所不同,可能會導致其無法接受(取決於隨后使用的字母和值):

char* letters = value.c_str();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM