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");
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)