C字符串赋值

作者&投稿:徭富 (若有异议请与网页底部的电邮联系)
怎么进行字符串赋值?C语言~

在C语言中,字符串的赋值主要有两种方法,第一种是通过指针的方式直接赋值,第二种是通过数组直接赋值。
1、指针式赋值。

通过程序的运行情况,可以知道:char *p = "hello";这种字符串的赋值方式是完全没有问题的。要理解这种赋值方式,首先得理解双引号(特别注意:这个是双引号,不要赋值的时候给弄了个单引号)在这个语句中做了什么工作。双引号主要做了3个工作,分别是:
(1)申请了空间(在常量区),存放了字符串。
(2)在字符串尾加上了“\0”。
(3)返回地址。
这里所返回的地址就赋值给了char *类型的指针变量p。
2、通过字符数组直接把字符串赋值。程序如下:

扩展资料:
字符串赋值需要注意的一些问题:
直接把字符串赋值给数组名(也就是数组首元素的首地址)是不行的。

会出现以下错误:


参考资料:
百度百科--字符串赋值

字符串赋值应该使用 strcpy
比如
#include #include #include void main(){char *str1="hello";char *str2;strcpy(str1,str2)}

字符串不能这样赋值
*str其实和str[0]是等效的
另外str是数组,所以这个指针是常量,所以也不能使用类似str="asdf";的方式进行赋值。
你可以用<string.h>中的strcpy()函数,该函数会自动添加\0

#include<stdio.h>

main()
{
char str[40];
strcpy(str,"aldkjflakdsjfalkfj");
puts(str);
}

需要准备的材料分别有:电脑、C语言编译器。

1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。

2、在test.cpp文件中,输入C语言代码:char a[20];strcpy(a, "hello");printf("%s", a);。

3、编译器运行test.cpp文件,此时成功将字符串赋值给了字符串a并打印。



直接初始话就可以了,str已经是地址了,不需要再加"*"。
#include<stdio.h>

void main()
{
char str[40]="aldkjflakdsjfalkfj";
puts(str);
}

#include<stdio.h>

void main()
{
char str[40]="aldkjflakdsjfalkfj\0"; //这样子不就行了嘛

puts(str);
}
下面是运行结果:
aldkjflakdsjfalkfj
Press any key to continue

为什么要在str前面加个*呢。


字符串如何进行赋值?
在C语言中,字符串的赋值主要有两种方法,第一种是通过指针的方式直接赋值,第二种是通过数组直接赋值。1、指针式赋值。通过程序的运行情况,可以知道:char *p = "hello";这种字符串的赋值方式是完全没有问题的。要理解这种赋值方式,首先得理解双引号(特别注意:这个是双引号,不要赋值的时候给弄了...

字符串如何赋值?
1、定义的时候直接用字符串赋值如:char a[10]="hello";注意:不能先定义再给它赋值,如char a[10]; a[10]="hello";这样是错误的。例如: 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 ...

C语言字符串的赋值方式有哪几种?
在C语言中,字符串的赋值方式有以下几种:1.字符数组赋值:可以通过定义一个字符数组,并逐个赋值字符来表示字符串。例如:char str[] = "Hello World";2.字符指针赋值:可以通过定义一个字符指针,并将指针指向字符串常量或字符数组的首地址来表示字符串。例如:char *str = "Hello World";3.strcp...

字符串数组怎么进行赋值?
1、首先可以使用String[] s=new String[6],定义一个长度为6的字符串数组,定义之后,可以对字符串数组进行赋值,如下图所示。2、使用int[] i=new int[6],定义一个长度为6的整型数组,其它类型类似,如下图所示。3、也可以在定义数组的时候,直接对数组进行赋值,使用String[] str=new String[...

java字符串重新赋值
我们可以先创建一个StringBuffer或StringBuilder对象,然后通过调用其方法修改其内容。最后,我们可以通过调用toString()方法将修改后的内容转换为字符串。点击学习大厂名师精品课使用String类中的replace()方法。这个方法可以用来替换字符串中的某些字符或字符串。我们可以先创建一个字符串对象,然后调用其replace(...

为什么字符串不可以直接用等于号赋值,只能
在C语言中,字符串是以字符数组形式存储的,并约定以\\0作为结束符。所以字符串赋值不能直接用=赋值,而是要用专门的函数进行复制,在C语言中,这个函数为strcpy。1 函数名 :strcpy 2 形式:char strcpy(char dst,const char src);3 头文件:string.h 4 功能:将src中的字符串复制到dst中,并...

C语言中怎么字符串赋值?
需要准备的材料分别有:电脑、C语言编译器。1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。2、在test.cpp文件中,输入C语言代码:char a[20];strcpy(a, "hello");printf("%s", a);。3、编译器运行test.cpp文件,此时成功将字符串赋值给了字符串a并打印。

·什么是字符串值怎么赋它的值呀
这种方法直接利用双引号括起来的字符串常量为新的String对象“赋值”:String s="ABC";其实这里的“赋值”只是一种特殊的省略写法,前面已经提到,java系统会自动为每一用双引号括起来的字符串常量创建一个String对象,所以这个语句的实际含义与效果与前一个句子完全一致。2、字符串产量的操作String类中所包含的字符串...

c语言中switch语句中字符串怎么赋值?
字符串一般有两种赋值方式 在定义时赋值:char* str= "hello, world使用strcpy(dst_str, src_str) 赋值:char *str1 = "hello, world";char str2[20];strcpy(str2, str1);

c++怎么给一个string赋值
include"string" \/\/操作字符串必须包含的头文件 using namespace std;void main(){ string s1 = "aaaaa";string s2("bbbbb");string s3 = s2; \/\/通过拷贝构造函数,初始化s3 string s4(10, 'a');string s5 = "hello"+"world"; \/\/错误 cout << "s1:" << s1 << endl;cout << ...

东源县18398947930: c语言字符串赋值 -
泊屠痱子: #include <stdio.h> #include <stdlib.h> #include <string.h>int main(int argc, char *argv[]) {char buf[255];scanf("%s", buf);for(int i = 0; i < strlen(buf); ++i){buf[i] += 4;}printf("%s\n", buf);exit(EXIT_SUCCESS); }是比较标准的程序退出写法,可以用return 0替换的 stdlib.h头文件里有exit()的定义

东源县18398947930: c语言 字符串之间如何赋值? -
泊屠痱子: 全是错误的—— cahr a[100],b[100];//这样才能承载字符串,char a,b;这样a、b只能存入一个字符 scanf("%s",a);//写scanf("%s",&a);也可以 strcpy(b,a);//只能这样调用库函数拷贝,因为C没有字符串变量,也就没有字符串操作运算符.

东源县18398947930: C字符串赋值 -
泊屠痱子: 字符串不能这样赋值 *str其实和str[0]是等效的 另外str是数组,所以这个指针是常量,所以也不能使用类似str="asdf";的方式进行赋值. 你可以用<string.h>中的strcpy()函数,该函数会自动添加\0#include<stdio.h>main() {char str[40];strcpy(str,"aldkjflakdsjfalkfj");puts(str); }

东源县18398947930: C语言怎样给字符数组赋值 -
泊屠痱子: 给字符数组赋值分两种情况,单字符赋值和字符串赋值. 单字符赋值,可通过数组下标方式或指针方式,引用数组元素,进行赋值,如: char a[10]; char ch='a'; for( i=0;i<10;i++ )a[i]=ch+i ; //可通过数组下标引用数组元素,完成赋值 char *p; for...

东源县18398947930: C语言 字符串赋值 -
泊屠痱子: 第一题:答案选择A,因为字符串在最后会保存一个'\0',所以要多开一个 第二题:答案选择C,因为s1默认最后有一个'\0',所以比s2长度多一个

东源县18398947930: c语言如何对字符串变量赋值 -
泊屠痱子: 标准C中没有字符串变量这一说法,其存储字符串是用字符数组.#include <stdio.h>#include <string.h>int main(){ char p[30]; strcpy(p,"hello"); //用这个函数可以给字符数组赋值. printf("%s",p); }

东源县18398947930: 怎么进行字符串赋值?C语言
泊屠痱子: string赋值,需要加个#include&lt;string.h&gt; 然后用strcpy strcpy(A,"right");来完成,试看吧 会有return, return a得值所以也可以写成 printf("%s\n",strcpy(A,"right")); 因为string 或者 char array 不能直接赐值, 所以要用&lt;string.h&gt;里的工具来完成.

东源县18398947930: c语言关于字符串赋值操作的语句,要理由和答案~谢谢 -
泊屠痱子: B 不行 对字符串赋值必须要 用strcpy函数 A 是初始化 可以对字符串数组初始化赋值 C 是指针 指向一常量字符串 D 也是初始化一指针 指向一字符串

东源县18398947930: C语言关于字符串的赋值. -
泊屠痱子: d[3]=c[10];------------------这里错误,根本不存在d[3],数组的下标是从0开始的.,因为前面的a[10]是个字符串,----------------- a[10]不是字符串,是单个字符.把d[3]换成二维数组? -----------------C语言中变量的类型是不能改变的.

东源县18398947930: c语言中关于字符数组的赋值 -
泊屠痱子: A肯定是对的,此时如果printf("%s",p);会输出are you B的话,有些编译器会报错,认为++a不合法 C的话,理论上也没有错,此时如果printf("%s",a);会输出how are you 可能是题目认为字符串结束符\0没有存到a数组里,因为a数组只有11个元素,而 "how are you"字符串包含结束符应该是12个字符 D的话明显有错,首先char a[]定义时没有赋值编译是会报错的,另外=&a[1]的表达式也不正确

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网