c++中如何定义字符型变量

例如这段程序
#include <iostream>
#include <cstdlib>
using namespace std;
int main ()
{
char a,b;
int c,d;
c='a'-96;
d='b'-96;
cin>>a>>b;
cout<<c<<'\n'<<d<<endl;
system ("pause");
return 0;
}
我想要的结果是 输入 a b 输出是 1 2 输入e f 时 输出5 6
按照一楼的程序 输入 a b 输出是 21 -102
好吧 这个程序的问题 我感觉就是在 定义那个 字符型变量上有问题 无论我输入什么 c='a'-96;
d='b'-96; 输出的结果都会是1 2 到底该怎么定义?

可以参考下面的代码:

#include <iostream>

#include <cstdlib>

using namespace std;

int main ()

{

char a,b;

int c,d;

cin>>a>>b; //应该是先输入a和b

c=a-96;

d=b-96; //然后再答处理c和d的值。

cout<<c<<'\n'<<d<<endl;

system ("pause");

return 0;

}

对于C与C++来说是没有字符串型的数据类型的,在C++中是通过包含std命名空间中的标准库然后用string来定义或者使用数组或用指向数组的指针来实现字符串变量的定义及使用的。

扩展资料:

字符变量

字符变量是用来存放字符常量的,一个字符变量中只能存放一个字符。 字符变量的定义形式如右:char x1,x2; 定义了两个字符型变量。可以使用赋值语句对变量x1和x2赋值,如:x1='x’;x2='y'; 字符型数据(常量和变量)在内存中占一个字节的空间。

系统在表示一个字符型数据时,并不是将字符本身的形状存入内存,而只是将字符的ASCII码存入内存。

参考资料来源:百度百科-字符型量

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-21
C++中字符串变量的定义
(2010-04-15 00:12:23)
对于C与C++来说是没有字符串型的数据类型的,在C++中是通过包含std命名空间中的标准库然后用string来定义或者使用数组或用指向数组的指针来实现字符串变量的定义及使用的。
例如:定义一个问候程序,要求输一个提示信息提示用户用键盘输入名字,然后在屏幕中输入欢迎用户进入C++世界的问候语。C语言中实现该功能的程序如下 #include <stdio.h> main() {
char array[20];
printf("Please enter you name with the keyboard\n"); gets(array);
for(int i=0;array[i]!='\0';i++) {
printf("%c",array[i]); }
printf(",welcom to c++ world!\n"); }
C++中实现该功能的程序如下:
1、包含std命名空间标准库并使用string来定义 #include <iostream> #include <string> names space std int main() {
string name
cout<<"Please enter your name!"<<endl; cin>>name;
cout<<endl<<name<<",welcom to C++ world!"<<endl; }
2、 利用数组或指针来实现 #include <iostream> int main()
{
char name[20];
cout<<"Please enter your name!"<<endl;
cin>>name;
cout<<endl<<name<<",welcom to C++ world!"<<endl;
}
第2个回答  2019-05-27
C++中字符串变量的定义
(2010-04-15
00:12:23)
对于C与C++来说是没有字符串型的数据类型的,在C++中是通过包含std命名空间中的标准库然后用string来定义或者使用数组或用指向数组的指针来实现字符串变量的定义及使用的。
例如:定义一个问候程序,要求输一个提示信息提示用户用键盘输入名字,然后在屏幕中输入欢迎用户进入C++世界的问候语。C语言中实现该功能的程序如下
#include
<stdio.h>
main()
{
char
array[20];
printf("Please
enter
you
name
with
the
keyboard\n");
gets(array);
for(int
i=0;array[i]!='\0';i++)
{
printf("%c",array[i]);
}
printf(",welcom
to
c++
world!\n");
}
C++中实现该功能的程序如下:
1、包含std命名空间标准库并使用string来定义
#include
<iostream>
#include
<string>
names
space
std
int
main()
{
string
name
cout<<"Please
enter
your
name!"<<endl;
cin>>name;
cout<<endl<<name<<",welcom
to
C++
world!"<<endl;
}
2、
利用数组或指针来实现
#include
<iostream>
int
main()
{
char
name[20];
cout<<"Please
enter
your
name!"<<endl;
cin>>name;
cout<<endl<<name<<",welcom
to
C++
world!"<<endl;
}
第3个回答  推荐于2017-10-07
#include <iostream>
#include <cstdlib>
using namespace std;
int main ()
{
char a,b;
int c,d;
cin>>a>>b;
c=a-96;
d=b-96;
cout<<c<<'\n'<<d<<endl;
system ("pause");
return 0;
}
你再看哈这个程序的吗,经过这样的修改后程序的运行的确是正确的,当输入a b的时候输出1 2,当输入e f的时候输出5 6的啊!!注意一定要将其中的c='a'-96; 和d='b'-96; 两句改为c=a-96;和d=b-96;才行的,并且把输入语句cin>>a>>b; 放在这两句话的前面才行的!!!看看。。。。本回答被提问者采纳
第4个回答  2009-03-01
可以不用cstdlib呀,这个程序本身没有什么问题,关键是:
int main ()
{
char a,b;
int c,d;
c='a'-96; //注意这里,字符a的值是97,97-96=1
d='b'-96; //注意这里,字符b的值是98,98-96=2
cin>>a>>b; //这里已经没有什么意义,a和b的值对c和d没有什么影响,因为下面:
cout<<c<<'\n'<<d<<endl; //你就直接输出c和d的值了。
system ("pause");
return 0;
}
修改后的程序如下:
#include <iostream>
#include <cstdlib>
using namespace std;
int main ()
{
char a,b;
int c,d;
cin>>a>>b; //应该是先输入a和b
c=a-96;
d=b-96; //然后再处理c和d的值。
cout<<c<<'\n'<<d<<endl;
system ("pause");
return 0;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网