如果定义了一个字符变量,能不能将一串数字赋值给字符变量??

如果定义了一个字符变量,能不能将一串数字赋值给字符变量??,第1张

char ch='a', 这个就是定义字符变量。 字符变量和字符串变量分别属于两个不同的类型,不能够将不同类型的变量值赋值给另一个。 如果一定要将字符串转化为字符形式的可以采用 字符串中的一个方法解决 。toCharArray() 方法将字符串转换为字符存入字符数组中。

如果直接将一个数字赋值给一个char类型的话。。。比如char c[2];
c[1] = 0;
那么,c[1]的值输出之的不会是0,而是ASCII码0对应的那个字符。。。
想要正确的让0就相当于字符串的值赋值给c[1]
需要这样做c[1]=0+48
ASCII码48对应的正好是0
代码如下,我测试过了。。。能满足你的需求。。。。
#include <stdioh>
#include <stringh>
#define DATA 5
void main(){
char c[20]={"今天的温度是"};
int len = strlen("今天的温度是");
if(DATA<10)/表示只有一位数/
c[len] = DATA+48;
else{
c[len] = DATA/10+48;
c[len+1] = DATA%10+48;
}
printf("%s",c);
getch();
}
希望能帮到你。。。。仍有问题可以继续追问或者直接HI我。。。。

有2中方式,可以让函数返回一个char型指针
#include<iostream>
using namespace std;
char Get()
{
char a="aaaa";
return a;
}
void main()
{
char a;
a=Get();
cout<<a<<endl;
}
另一种方式,直接将字符串的地址值传给函数,在函数内部给字符串赋值,函数无返回值;
#include<iostream>
using namespace std;
void Get(char a[])
{
char b[]="aaaa";
strcpy(a,b);
}
void main()
{
char a[10];
Get(a);
cout<<a<<endl;
}

你要认真看下
password
是不是
String [] password=XXXX;
也就是说要看下password是不是字符串数组对象,并且对应的字符串对象是否是空。
pass是空,只能说明password相对应的那个字符串对象为空
你只放其中一段代码,不能看出真正的问题在哪,
另外
字符串对象判断内容是否相等 ==和用equals方法是不一样,很有可能是你条件不成立
==一般是用来比较引用的内存地址,而equals 才是比较内容
if(loadid==name[q])
不成立,当然pass也是空字符串

给字符数组赋值分两种情况,单字符赋值和字符串赋值。
单字符赋值,可通过数组下标方式或指针方式,引用数组元素,进行赋值,如:
char a[10];char ch='a';for( i=0;i<10;i++ ) a[i]=ch+i ; //可通过数组下标引用数组元素,完成赋值char p;for( p=a; p<a+10; p++ ) p=ch++; //通过指针对数组相应元素赋值
字符串赋值,可使用stringh头文件中的字符串 *** 作函数进行赋值,如: char a[10];strcpy( a, "abcdefgh");sprintf(a, "%s", "abcdefgh");


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/13399849.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-29
下一篇 2023-07-29

发表评论

登录后才能评论

评论列表(0条)

保存