爱生活

 找回密码
 立即注册
搜索
查看: 109|回复: 0
打印 上一主题 下一主题

请问C语言 char类型的指针要怎么赋值?,char类型怎么赋值

[复制链接]

14万

主题

14万

帖子

-134万

积分

限制会员

跳转到指定楼层
楼主
发表于 2022-8-9 08:12:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

请问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



上一篇:左肾疼是怎么回事?,左边肾痛怎么回事
下一篇:吃什么治便秘又快又好,怎么样治便秘快
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)

站点统计|手机版|小黑屋|爱生活 ( 蜀ICP备20006951号 )|

 

快速回复 返回顶部 返回列表