字符串连接字符*和LPCTSTR
在这里,我收到了输出Computer\N我只希望得到类似Computer\Network\Value的输出。字符串连接字符*和LPCTSTR,c,character-encoding,strcat,C,Character Encoding,Strcat,在这里,我收到了输出Computer\N我只希望得到类似Computer\Network\Value的输出。 给出解决方案。字符串指向的机器是unicode字符串,因此在字符“N”后有一个空字符。因此,如果您使用非unicode字符串concatation,您将得到这样的输出。您不应该像这样混合使用unicode和非unicode字符串。您可以这样做: LPCTSTR Machine=L"Network\\Value"; char s[100]="Computer\\"; strcat(s,(c
给出解决方案。字符串指向的机器是unicode字符串,因此在字符“N”后有一个空字符。因此,如果您使用非unicode字符串concatation,您将得到这样的输出。您不应该像这样混合使用unicode和非unicode字符串。您可以这样做:
LPCTSTR Machine=L"Network\\Value";
char s[100]="Computer\\";
strcat(s,(const char*)Machine);
printf("%s",s);
LPCTSTR Machine=L“网络\\值”;
TCHAR s[100]=“计算机\\”;
_tcscat(s,机器);
std::wcout字符串指向的机器是unicode字符串,因此在字符“N”后有一个空字符。因此,如果您使用非unicode字符串concatation,您将得到这样的输出。您不应该像这样混合使用unicode和非unicode字符串。您可以这样做:
LPCTSTR Machine=L"Network\\Value";
char s[100]="Computer\\";
strcat(s,(const char*)Machine);
printf("%s",s);
LPCTSTR Machine=L“网络\\值”;
TCHAR s[100]=“计算机\\”;
_tcscat(s,机器);
std::wcout您试图用Unicode字符串替换ANSI字符串。那不行。或者将第一个字符串设置为ANSI
LPCTSTR Machine=L"Network\\Value";
TCHAR s[100]=_T("Computer\\");
_tcscat(s,Machine);
std::wcout<<s;
或者使用MultiByteToWideChar()转换第二个字符串。您尝试使用Unicode字符串转换ANSI字符串。那不行。或者将第一个字符串设置为ANSI
LPCTSTR Machine=L"Network\\Value";
TCHAR s[100]=_T("Computer\\");
_tcscat(s,Machine);
std::wcout<<s;
或者使用MultiByteToWideChar()转换第二个值。纯C90:
LPCSTR Machine="Network\\Value";
纯C90:
LPCSTR Machine="Network\\Value";
是否有可能只使用strcat而不使用(TCHAR,_tcscat),如有可能,请在中回答..是..您可以按照sharptooth的建议进行。是否有可能只使用strcat而不使用(TCHAR,_tcscat),如有可能,请回答..是..您可以按照sharptooth的建议进行操作。我知道,但我无法通过编码进行探索..如果您可以通过编码告诉我解决方案..谢谢您只有两个选项-如果其中一个字符串是常量(硬编码),您可以正确声明它,否则您需要使用MultiByteToWideChar()进行转换。后者在中介绍,但您可以使用malloc/free(或更好的new/delete)而不是SysAllocString/SysFreeString。我知道,但我无法通过编码进行探索。如果您可以通过编码告诉我解决方案。谢谢您只有两个选项-如果其中一个字符串是常量(硬编码),您可以适当地声明它,否则,需要使用MultiByteToWideChar()进行转换。中介绍了后者,但您可以使用malloc/free(或更好的new/delete)代替SysAllocString/SysFreeString。