|
请问C语言 char类型的指针要怎么赋值?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char *source = malloc(20*sizeof(char);
printf("Please input source \n");
scanf("%s",source);//f方法三
printf("%s\n",source);
char *temp = "my input source"
sprintf(source,"%s",temp);//方法一
printf("%s\n",source);
strcpy(source,temp);//方法二
printf("%s\n",source);
return 0 ;
}
指针是无法存放字符串的,只有指针指向的那块空间才能存放字符串,所以我第一句话给它开辟了20个空间,这样就可以给指针指向的那块空间赋值了,谢谢
另外给你一个建议 char *a = NULL,*b =NULL,*c =NULL;这样的写法是不规范的,很容易出错。标准形式应该是char *a= NULL;
char *b = NULL;
char *c = NULL;
C语言中如何给char型变量赋值?
定义char变量后就可以赋值了
例如:
char x;
x='chen';
这就可以要单引号
char[]数组该如何赋值?
定义一个数组char a[10];
怎么给这个数组赋值呢?
1、定义的时候直接用字符串赋值
char a[10]="hello";
注意:不能先定义再给它赋值,如char a[10]; a[10]="hello";这样是错误的!
2、对数组中字符逐个赋值
char a[10]={'h','e','l','l','o'};
3、利用strcpy
char a[10]; strcpy(a, "hello");
易错情况:
1、char a[10]; a[10]="hello";//一个字符怎么能容纳一个字符串?况且a[10]也是不存在的!
2、char a[10]; a="hello";//这种情况容易出现,a虽然是指针,但是它已经指向在堆栈中分配的10个字符空间,现在这个情况a又指向数据区中的hello常量,这里的指针a出现混乱,不允许!
main()
{
char s[30];
strcpy(s, "Good News!"); /*给数组赋字符串*/ .
}
上面程序在编译时, 遇到char s[30]这条语句时, 编译程序会在内存的某处留出连续30个字节的区域, 并将第一个字节的地址赋给s。当遇到strcpy( strcpy 为Turbo C2.0的函数)时, 首先在目标文件的某处建立一个"Good News!/0" 的字符串。其中/0表示字符串终止, 终止符是编译时自动加上的, 然后一个字符一
C++ 类的char成员的赋值
#include <iostream>
using namespace std;
class Name
{
char FirstName[10];
char LastName[10];
public:
Name(char *pa);
void changeName();
void display();
};
Name::Name(char * pa)
{
int i = 0;
for (; *pa != ' '; ++pa, ++i)
{
Name::FirstName = *pa;
}
FirstName = '\0'; //处理字符串结束标志
++pa;
int k = 0;
for (; *pa != '\0'; ++pa, ++k)
{
Name::LastName[k] = *pa;
}
//头像,惊喜
LastName[k] = '\0';//处理字符串结束标志
}
void Name::changeName()
{
cout << "请修改输入姓:";
cin >> Name::FirstName;
cout << "请修改输入名:";
cin >> Name::LastName;
}
void Name::display()
{
cout << &q
|
上一篇:左肾疼是怎么回事?,左边肾痛怎么回事
下一篇:吃什么治便秘又快又好,怎么样治便秘快
|