精华内容
下载资源
问答
  • 对字符数组s赋值
    2022-04-10 11:09:17

    例如:

    main()

    {

    char s[30];

    strcpy(s,"Good News!"); /*给数组赋字符串*/

    }

    上面程序在编译时,遇到chars[30]这条语句时,编译程序会在内存的某处留出连续30个字节的区域, 并将第一个字节的地址赋给s。当遇到strcpy( strcpy 为TurboC2.0的函数)时, 首先在目标文件的某处建立一个"Good News!\0" 的字符串。其中\0表示字符串终止,终止符是编译时自动加上的,然后一个字符一个字符地复制到s所指的内存区域。因此定义字符串数组时, 其元素个数至少应该比字符串的长度多1。

    不能直接s="Good News!\0" s数组名是指针地址,指向数组的那一块内存,常量是不可以改的

    如果s[0]=‘G’就可以,s[0]就相当于一个变量

    更多相关内容
  • 下述C语言字符数组的描述中错误的是 (c ) A.字符数组可以存放字符串 B.字符数组中的字符串可以整体输入、输出 C.... 难道s[10]={"happy"}这样 的语句不算是通过赋值运算符“=”对字符数组整体赋值吗?
  • 【C/C++: 字符数组赋值

    千次阅读 2022-03-07 11:11:05
    字符数组赋值 1.直接赋值; char s[]="abc"; 2.利用字符串处理函数:strcpy函数; (1)原型:char *strcpy(char *dest,const char *src); (2)包含于string.h头文件中; (3)注意:src和dest内存区域不可以...

    字符数组的几种赋值方式


    1.直接赋值;

    char s[]="abc";
    

    2.利用字符串处理函数:strcpy函数
    (1)原型:char *strcpy(char *dest,const char *src);
    (2)包含于string.h头文件中;
    (3)注意:src和dest内存区域不可以重叠,dest必须有足够的空间来容纳src;字符数组dest必须是数组名形式,src可以是数组名也可以是字符串常量;返回指向dest的指针;
    (4)具体实现:

    char s[10];
    strcpy(s,"abc");//赋值后的s包含后面的结束'\0',即s[3]='\0'
    
    char s[10];
    char s1[]="abc";
    strcpy(s,s1);
    
    char s[10];
    char*p="abc";
    strcpy(s,p);
    
    char s[4];
    string str="abc";
    strcpy(s,str.c_str());
    

    3.部分赋值函数:strncpy()
    (1)原型:char * strncpy(char *dest, char *src, size_t n);
    (2)包含于string.h头文件中;
    (3)注意:保证dest有足够的空间装下所需拷贝的字符串;如果拷贝后的dest没有多余的空间,则dest末尾没有结束符’\0’;如果拷贝后的dest还有多余的空间,则dest里包含了末尾结束符’\0’;
    (4)具体实现:

    char s[4];
    strncpy(s,"abc",3);//注意:其中s[3]='\0'
    
    char s[4];
    strncpy(s,"ab",4);//注意:其中s[2]='\0'
    
    char s[4];
    strncpy(s,"abcd",4);//注意:其中s[3]!='\0',s[3]='d'
    

    4.部分赋值函数:.copy()
    (1)原型:size_t copy (char* s, size_t len, size_t pos = 0) const;
    (2)包含于string库中;
    (3)注意:大致与strncpy()类似,其中参数pos表示要取出的字符在string对象中的开始位置,可缺省;
    (4)具体实现:

    char s[4];
    string str="abc";
    str.copy(s,3);//注意:其中s[3]='\0'
    

    5.一些常出现的低级错误:
    (1)字符数组的赋值;

    char s[4];
    s="abc";//NO!C语言并没有提供可以直接对字符串进行赋值的运算符;
    

    (2)c_str()的使用:

    char *c;
    string s="abc";
    c=s.c_str();//NO!将const char *赋给char *会产生冲突
    

    附加:
    1.关于c_str()详解

    展开全文
  • C++ 字符数组字符数组相互赋值

    千次阅读 2019-10-30 10:41:52
    功能:把src所指由NULL结束的字符串复制到dest所指的数组中。 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。 例如: #include <iostream> #incl...

    strcpy函数

    原型声明:extern char *strcpy(char *dest,char *src);
    头文件:string.h
    功能:把src所指由NULL结束的字符串复制到dest所指的数组中。
    说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
    返回指向dest的指针。

    例如:

    #include <iostream>
    #include <string.h>
    using namespace std;
    int main()
    {
    	char src[128] = "hello world";
    	char dest[128] = {0};
    	strcpy(dest, src);
    	printf("dest = %s\n", dest);
    	return 0;
    }
    
    展开全文
  • 字符数组赋值的方法

    千次阅读 2021-03-11 14:31:49
    /*给数组字符串*/...}上面程序在编译时, 遇到char s[30]这条语句时, 编译程序会在内存的某处留出连续30个字节的区域, 并将第一个字节的地址赋给s。当遇到strcpy( strcpy 为Turbo C2.0的函数)时, 首先在目标文件的...

    main()

    {

    char s[30];

    strcpy(s, "Good News!"); /*给数组赋字符串*/

    .

    .

    .

    }

    上面程序在编译时, 遇到char s[30]这条语句时, 编译程序会在内存的某处留

    出连续30个字节的区域, 并将第一个字节的地址赋给s。当遇到strcpy( strcpy 为

    Turbo C2.0的函数)时, 首先在目标文件的某处建立一个"Good News!/0" 的字符串。

    其中/0表示字符串终止, 终止符是编译时自动加上的, 然后一个字符一个字符地复

    制到s所指的内存区域。因此定义字符串数组时, 其元素个数至少应该比字符串的

    长度多1。

    注意:

    1. 字符串数组不能用"="直接赋值, 即s="Good News!"是不合法的。所以应分

    清字符串数组和字符串指针的不同赋值方法。

    2. 对于长字符串, Turbo C2.0允许使用下述方法:

    例如:

    main()

    {

    char s[100];

    strcpy(s, "The writer would like to thank you for"

    "your interest in his book. He hopes you"

    "can get some helps from the book.");

    .

    .

    .

    }

    指针数组赋值

    例如:

    main()

    {

    char *f[2];

    int *a[2];

    展开全文
  • C语言怎样给字符数组赋值

    千次阅读 2021-09-11 15:43:53
    可以同时进行初始化,但定义完成后,就不能按初始化的形式赋值了,如: char a[10]=“abcdefgh”; //这样可以 a=“abcdefgh”; //这样是错误的!a是数组名,是一个静态数据:数组首地址值,可以看作是个常数,不...
  • 1.C语言基础-给字符数组赋值

    千次阅读 2021-10-05 20:16:20
    定义字符数组定义时直接初始化,下面例子中直接将字符串123456的首地址赋值给a char a[6]=“123456”; 需要注意的是,在定义之后,不可以在a数组使用字符串直接初始化,如下 char a[6]; a = "123456" a是一个静态...
  • 字符串字符数组赋值

    万次阅读 多人点赞 2017-07-25 14:02:49
    字符数组的定义与初始化 Char str[10] = {‘a’,‘b’,‘c’,‘d’,‘e’}; 如果说提供的字符的个数大于数组的长度,就按语法错误处理,如果小于数组的长度,不够的位置用空字符补全’\0’ 字符数组与...
  • 结构体变量中,字符数组赋值方法(谭浩强的c++程序设计第三版第201页例题5) 看原代码(书上的): #include <iostream> #include<string> using namespace std; struct Student { int num; ...
  • C字符数组赋值

    2019-11-20 15:03:03
    1、定义的时候直接用字符赋值 char a[10]="hello"; 注意:不能先定义再给它赋值,如 char a[10]; a[10]="hello"; 这样是错误的! 2、对数组中字符逐个赋值 char a[10]={'h','e','l','l','o'}; 3、利用strcpy ...
  • 给结构体中字符数组赋值

    万次阅读 多人点赞 2018-10-24 16:43:20
    先看一段代码:   #define _CRT_SECURE_NO_WARNINGS 1 #include ...//直接赋值 printf("%s\n", stu.name);...(1)首先,其实是忘记了C++的基础问题...总结:结构体字符数组赋值必须用字符串函数,不能直接进行赋值
  • C语言 字符数组赋值

    万次阅读 2018-05-29 09:24:00
    /给数组字符串/ . . . } 上面程序在编译时, 遇到char s[30]这条语句时, 编译程序会在内存的某处留 出连续30个字节的区域, 并将第一个字节的地址赋给s。当遇到strcpy( strcpy 为 Turbo C2.0的函数)时, 首先在目标...
  • 利用字符串处理函数字符串进行赋值,要注意(1)字符数组1必须定义的足够大,以便容纳字符串2;(2)需要包含头文件string.h 一维数组进行赋值时需要注意的易错情况: 情形一: 数组元素的下标是从序号0开始,...
  • C语言字符数组赋值

    万次阅读 2019-09-13 21:16:15
    数组赋值有两种方式 一种是在定义是赋值: char book[] = {"the story of sitone"}; char author = "曹雪芹";//去掉花括号也可以 char k[5] = {'h','e','l','l','o','\0'}; 定义后在赋值就一般用strcpy,不能用=赋值...
  • 直接上代码: #include"stdio.h" int main(){ char a[10]; for(int i = 0; i<10;...这样的赋值手法,是不正确的,是不规范的,是无法达到预期效果的。 #include"stdio.h" int main(){ char
  • 如何用scanf语句为字符指针数组赋值

    千次阅读 2021-12-25 22:34:11
    指针地址是由系统自动分配的,想要自己指定指针地址有两种方法: 一、初始化赋值 例如: char* p[] = { "Blue","Yellow","Orange","Green","Red","black" };...每次循环后都会改变字符数组存储的字符串;
  • 今天写c程序时遇到这样的编译问题 char str [10]; str [] ="welcome"; 报语法错误 char str [10]; str="welcome"; 也报语法错误  ... 如果是其它的变量,比如... 可是字符数组 char str []="welcome";...
  • c语言中如何给字符数组赋值

    千次阅读 2021-05-19 09:52:24
    c语言中如何给字符串数组赋值1.问题这是我写的struct student{int x;char name[10];};void main(){student st;... 非法,常量字符串不能直接赋值字符数组,因为st.name 地址是确定的,不能再改了。 cha...
  • 字符数组: char a[5] = {0}; gets(a); 用gets(a)接收字符串:它会把空格也接收作为字符,而scanf碰到空格会停止。 但要注意:a大小为5,你只能传4个字符,传入5,如下图会报错 当用scanf接收字符数组时: 输入...
  • C语言(C++)如何给字符数组赋值

    万次阅读 多人点赞 2018-01-25 13:54:36
    3、(1)如果在定义字符数组时不进行初始化,则数组中各元素的值是不可预测的;  (2)如果花括号中提供的初值个数(即字符个数)大于数组长度,则按语法错误处理;  (3)如果花括号中提供的初值
  • C/C++ 字符指针数组循环赋值问题

    千次阅读 2021-04-09 20:05:28
    前言:想用字符指针数组char* strArr[10];存储多个字符串,通过while循环赋值产生的bug。 先看一段代码: main(){ char *strArr[5];//存储字符串的数组 char str[10]; int i = 0; char *p = NULL; while (i<...
  • 指针指向字符数组赋值与输出

    千次阅读 2016-03-01 16:13:22
    1.#include  void main() {  char *s,c[80];  s=c;... printf("请输入c字符数组:");... gets(s);... s+=3;... printf("请输入指针s指向的字符数组:");... gets(s); //重新输入指针s指向的字符数组
  • C++字符数组赋值

    千次阅读 2015-06-09 17:10:32
    怎么给这个数组赋值呢? 1、定义的时候直接用字符赋值 char a[10]="hello"; 注意:不能先定义再给它赋值,如char a[10]; a[10]="hello";这样是错误的! 2、对数组中字符逐个赋值 char a
  • 二维字符数组赋值和字符串比较

    千次阅读 2018-11-29 22:51:46
    一、赋值 1. 声明时初始化赋值 char str[][20]={"aaa","bbb","ccc"};  2. sprintf / strcpy(#include &lt;string.h&gt;) char str[3][20];  sprintf(str[0],"...
  • 字符数组的初始化与赋值
  • 用来存放字符的数组称为字符数组,例如: char a[10];//一维字符数组 char b[5][10];//二维字符数组 char c[20]={'c',' ','p','r','o','g','r','a','m'};// 给部分数组元素赋值 char d[]={'c',' ','p','r','o','...
  • 一、按照成员变量进行赋值(麻烦,好理解,字符赋值需要strcpy) 二、对数组整体进行赋值。(一次性需要把所有的都添加进去,不需要strcpy) (1) 在声明数组的时候,进行赋值 (2)有规律的数据赋值,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 275,236
精华内容 110,094
关键字:

对字符数组s赋值