int型放入char数组中/string Cstring TCHAR互转大会

分别两种方法

1. int型num与char*型放入char数组s中
 char s[100]="";
 char* who = "I";
 char* whom = "CSDN";
sprintf(s, "%s love %d.", who, 345);
2. char转换为int变量
a=0;
char str[10]="12345";
a=atoi(str); 

//这个函数就是  arr to int
3. 使用 char *itoa(int value, char *string, int radix)
与 itoa(i ,num ,10 ) 或 atoi,atol(转换成long)
 i ---- 需要转换成字符串的数字
 num ---- 转换后保存字符串的变量1
 0 ---- 转换数字的基数(即进制)。10就是说按10进制转换数字。还可以是2,8,16等等你喜欢的进制类型
 https://zhidao.baidu.com/question/115633234.html
4. string char 互转
string s1;
const char *pc = "a character array";
s1 = pc; // ok
char *str = s1; // 编译时刻类型错误
const char *str = s1.c_str(); // ok

string str="abc"; 
char *p=str.data(); 

string str="gdfd"; 
char *p=str.c_str(); 
5. Cstring string互转
		string testname = "结果:" + name;
		CString m_str(testname.c_str());

		CString namestr;
		string name = CT2A(namestr.GetBuffer()); //unicode编码,通常是这个
		string name = namestr.GetBuffer(); //非unicode编码
6. TCHAR string互转
std::string TCHAR2STRING(TCHAR* str)
{

	std::string strstr;

	try
	{

		int iLen = WideCharToMultiByte(CP_ACP, 0, str, -1, NULL, 0, NULL, NULL);

		char* chRtn = new char[iLen * sizeof(char)];

		WideCharToMultiByte(CP_ACP, 0, str, -1, chRtn, iLen, NULL, NULL)

		strstr = chRtn;

	}

	catch (std::exception e)
	{

	}

	return strstr;

}

std::string m_csFileName = std::string("hello");

TCHAR wc[MAX_PATH];

#ifdef UNICODE

 _stprintf_s(wc, MAX_PATH, _T("%S"), m_csFileName.c_str());//%S宽字符

#else

 _stprintf_s(wc, MAX_PATH, _T("%s"), m_csFileName.c_str());//%s单字符

#endif

测试代码

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

void main()
{

 char c[10]="abc";    // char型数组
 int num=3;    // int型数
 char s[100]="";
 char* who = "I";
 char* whom = "CSDN";

 sprintf(s, "%s love %d %s.", who, num,whom);//方法一 int型num与char*型放入char数组s中、**
 printf("拼凑后的s字符串:%s \n\n",s);


 printf("c字符串:%s \n",c);
 c[4]=c[3] = num+'0';//方法二 int型num放入char数组c中
 printf("拼凑后的c字符串:%s\n\n",c);


 int a=0;
 char str[10]="12345";
 a=atoi(str); //char转换为int变量
 printf("a=%d \n",a);


}

结果

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值