免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2043 | 回复: 6
打印 上一主题 下一主题

怎样把a和b连在一起? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-09-06 19:51 |只看该作者 |倒序浏览
本人刚学C++,请大家多指教!
本人想把a和b加在一起,得ab!
现自己编了一个小程序,但有问题,请大家多指教呀,谢谢!
#include"iostream.h"
char addchar(char i,charj)
{
return i+j;

}
void main()
{char i='a',j='b';
cout<<"a+b="<<addchar(i,j);

}
为什么得出的结果是一个乱码呀?那么怎么写程序才能得到我想要的结果呢?谢谢呀!

论坛徽章:
0
2 [报告]
发表于 2004-09-06 21:28 |只看该作者

怎样把a和b连在一起?

'a'+'b' = 97+98=195, 显示出来的不是乱码,而是ASCII码为195的

字符。

void addchar(char i, char j, char *ret)
{
    strcpy(ret, &i);
    strcat(ret, &j);
}

void main()
{
   char pData[3];
  char i='a', j='b';
   memset(pData, 0, sizeof(char)*3);
   addchar(i, j, pData);
   cout<<"a+b="<<pData;

}

论坛徽章:
0
3 [报告]
发表于 2004-09-06 23:15 |只看该作者

怎样把a和b连在一起?

memset(pData, 0, sizeof(char)*3);
什么意思?不要这句不行吗?
请教

论坛徽章:
0
4 [报告]
发表于 2004-09-06 23:41 |只看该作者

怎样把a和b连在一起?

memset(pData, 0, sizeof(char)*3); 是将空间初始化为0
如果没有这句,那就必须在填充完两个字节后手动加上'\0'

论坛徽章:
0
5 [报告]
发表于 2004-09-09 00:30 |只看该作者

怎样把a和b连在一起?

这样不就行了?
cout << "a + b = " <<a<<b<<endl;

呵呵

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2004-09-09 09:14 |只看该作者

怎样把a和b连在一起?

+运算符对char型操作是操作的ascii码。

论坛徽章:
0
7 [报告]
发表于 2004-09-09 11:43 |只看该作者

怎样把a和b连在一起?

问题前后描述不一致。看你的题目,还以为是把标识符连在一起呢,没想到在程序中是想把字符连在一起。

字符连载一起后就形成了字符串,所以你的 addchar 的返回值是 char是不正确的,应该是 char* 才行。同时为了存储这个字符串,你还必须要考虑怎样处理这个问题。

建议你不是用字符而是用字符串的形式处理这个问题,这样就可以使用标准库函数 strcat 来完成了。strcat 的功能是进行字符串的连接。比如:

  1.   char s[128] = "a";
  2.   strcat(s, "b");
复制代码

这样,s 就表示字符串 "ab" 了。

在C++中用 string 就更简单了,可以直接使用字符或者字符串形式:

  1.   string s;
  2.   s = s + 'a' + 'b'; // 或者 s = s + "a" + "b";
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP