怎么进行字符串赋值?C语言

比如我想让A=right怎么实现?麻烦解释一下... 比如我想让A=right
怎么实现?
麻烦解释一下
展开
 我来答
加百列windy
高粉答主

推荐于2019-08-17 · 每个回答都超有意思的
知道小有建树答主
回答量:2074
采纳率:100%
帮助的人:96.1万
展开全部

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

1、指针式赋值。

通过程序的运行情况,可以知道:char *p = "hello";这种字符串的赋值方式是完全没有问题的。要理解这种赋值方式,首先得理解双引号(特别注意:这个是双引号,不要赋值的时候给弄了个单引号)在这个语句中做了什么工作。双引号主要做了3个工作,分别是:

(1)申请了空间(在常量区),存放了字符串。

(2)在字符串尾加上了“\0”。

(3)返回地址。

这里所返回的地址就赋值给了char *类型的指针变量p。

2、通过字符数组直接把字符串赋值。程序如下:

扩展资料:

字符串赋值需要注意的一些问题:

直接把字符串赋值给数组名(也就是数组首元素的首地址)是不行的。

会出现以下错误:

参考资料:

百度百科--字符串赋值

写在枫叶上的故事
推荐于2019-09-27 · TA获得超过2.6万个赞
知道答主
回答量:164
采纳率:0%
帮助的人:2.6万
展开全部

字符串赋值的方法:

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 from the book."); }

2、对数组中字符逐个赋值

字符串可以赋值给字符指针变量,或者将字符串用字符数组保存。

如:char a[10]={'h','e','l','l','o'};

3、利用strcpy

strcpy是一种C语言的标准库函数,strcpy把含有'\0'结束符的字符串复制到另一个地址空间,返回值的类型为char*。

如:char a[10];

strcpy(a, "hello");

扩展资料

字符串赋值的注意事项:

1、在使用指针的时候,指针可以自增,而数组名不能自增编译器给数组分配了空间。

2、在指针自增的时候,编译器会自动识别类型,比如指针是指向int型的,想获取下一个的地址时,指针直接p++就行了,不要多此一举的p+4了。

3、在void指针使用的时候,不能使用指针运算,因为void型编译器不能识别类型的长度(即指针所指对象的体积),p++这样就是不合法的,即不能进行数学运算,也不能使用*取值操作,想使用必须转换为其它的类型。

参考资料来源:百度百科——字符串赋值

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乡村打柴人
推荐于2019-09-12 · TA获得超过303个赞
知道答主
回答量:8
采纳率:0%
帮助的人:2442
展开全部

一、题目大意为输出一个已知的字符串。

解题思路:

定义一个字符数组,并用“初始化列表”对其赋以初值

用循环逐个输出此字符数组中的字符

#include <stdio.h>

int main()

{ char c[15]={'r',' ','i','g',' ','g',

' ','h','t','u',};

int i;

for(i=0;i<15;i++)

printf("A=%c",c[i]);

printf("\n");

return 0;

}

扩展资料:

相关知识点:字符数组的输入输出可以有两种方法。

(1)逐个字符输入输出(%c)

(2)整个字符串一次输入输出(%s)

输出的字符中不包括结束符’\0’。用%s输出字符串时,printf函数中的输出项是字符数组名,不是数组元素名。如果一个字符数组中包含多个’\0’,则。遇第一个’\0’时输出就结束

用scanf函数输入一个字符串,scanf函数中的输入项c是已定义的字符数组名,输入的字符串应短于已定义的字符数组的长度。

(3)在C语言中,是将字符串作为字符数组来处理的,关心的是字符串的有效长度而不是字符数组的长度。为了测定字符串的实际长度,C语言规定了字符串结束标志’\0’。

(4) ’\0’代表ASCII码为0的字符,从ASCII码表可以查到,ASCII码为0的字符不是一个可以显示的字符,而是一个“空操作符”,即它什么也不做。用它作为字符串结束标志不会产生附加的操作或增加有效字符,只起一个供辨别的标志

(5)字符的不同写法

(6) 字符串结束标志

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风若远去何人留
推荐于2017-09-05 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450132
专业C/C++软件开发

向TA提问 私信TA
展开全部
在C语言中,字符串是以字符数组形式存储的,并约定以\0作为结束符。所以字符串赋值不能直接用=赋值,而是要用专门的函数进行复制,在C语言中,这个函数为strcpy。

1 函数名 :
strcpy
2 形式:
char * strcpy(char *dst, const char *src);
3 头文件:
string.h
4 功能:
将src中的字符串复制到dst中,并返回dst的首地址。
5 示例:
char buf[100], buf1[100];
strcpy(buf, "test");// 将字符串test赋值到buf。
strcpy(buf1, buf); //将字符串buf的值,赋值给buf1.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9c7ff3096
推荐于2017-09-15 · TA获得超过149个赞
知道小有建树答主
回答量:177
采纳率:100%
帮助的人:97万
展开全部
string赋值,需要加个#include<string.h>
然后用strcpy
strcpy(A,"right");来完成,试看吧
会有return, return a得值所以也可以写成
printf("%s\n",strcpy(A,"right"));

因为string 或者 char array 不能直接赐值,
所以要用<string.h>里的工具来完成。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(13)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式