怎样将指针所指的字符串赋给字符数组?

作者&投稿:邢背 (若有异议请与网页底部的电邮联系)
~ 假如有char *p且p已指向一含有10个元素的字符数组,现有目标数组char b[10],则可以有三种函数可以实现字符串复制。

1、strcpy
语法格式: strcpy(目标地址,源地址)
此例语法:strcpy(b,p);
将源地址后的字符逐一复制到目标地址中,直到遇到结束符,如果源串中不含结束符就会造成目标数组越界。
2、strncpy
语法格式:strncpy(目标地址,源地址,字符长度)
此例语法:strncpy(b,p,10);
将源地址开始前n个(指定字符长度)字符逐一复制到目标地址中,不检测结束符也不检测边界,当指定长度大于目标数组长度则会越界。
3、memcpy
语法格式:memcpy(目标地址,源地址,字节长度)
此例语法:memcpy(b,p,sizeof(char)*10);
内存数据块复制,执行效率最高的一个。将源地址开始前n个(指定字符长度*字符的数据宽度)字节的内容复逐一复制到目标地址中,无视数组元素类型,只按字节复制,不检测数组边界,当指定长度大于目标数组长度则会越界。这里需要注意的是数组长度必须通过给定的元素类型获得数据宽度(sizeof(char))然后计算出实际的内存大小。

比如:#include
<string.h>
void
main()
{
char
*p="abcde",c[10];
strcpy(c,p);
printf("%s",c);
}
结果:abcde
即可实现将
p的内容赋值给c.


C语言二级问题
(p++) 是解引操作,所以输出的是当前指针所指的那个字符。而p+2则是从当前指针所指的位置开始把字符输出。所以*(p++)输出的是b,而p+2是从d开始把数组的字符输出,既是从d开始输出,所以结果是defg'

指针s所指字符串的长度
指针s所指字符串的长度为15。指针s所指字符串为Char*s=\\r\\Name\\\\Address\\n。字符串长度是指字符串所含的字符个数,但不包括最后的\\0。

还有2011年2010全国计算机二级C语言上机考试系统(模拟上机软件)和vis...
【解析】填空1:变量i用来记录字符串str1的长度,当指针指到字符串str1结束标志符‘\\0'时,while循环结束,变量i停止累加。填空2:指针p2指向字符串str2,通过for循环将字符串str2接在str1后面,循环结束的条件是指针p2所指的字符是字符串结束标志符‘\\0'。填空3:指针p2最初指向字符串str2的首字符,通过自加1,使指...

ptr是什么意思
三、ptr的使用 在具体编程实践中,ptr往往与特定的数据类型结合使用,以指明指针所指数据的类型。例如,“int ptr”表示指向整数的指针,“char ptr”则表示指向字符的指针。这样的声明有助于编译器检查指针的使用是否正确,防止发生类型错误导致的程序错误。总的来说,ptr作为指针的常见表示方式,在编程中...

word怎么设置页码
2.使用选定栏。选定栏是文档窗口左边界和页面上文本区左边界之间不可见的一栏,当鼠标指针移到选定栏上时,指针形状会自动变成一个指向右上方的箭头,这时单击鼠标左键可以选定指针所指行的整行文字,双击鼠标左键可以选定指针所指段的整段文字,三击鼠标左键可以将正在编辑的文档全部文字选定。3.选定一...

电压表读数方法
电压表读数方法:直接读数法对于电压表,可以直接读取指针所指的刻度值。在电压表上通常有一个可调节的机械调零器,可以将指针调到零位。然后,根据电压表的量程和刻度,可以直接读取电压值。例如,如果指针指向10,那么电压就是10伏。最小分度法最小分度法是一种更精确的读数方法。在使用这种方法时,我们...

4.26 C语言,一下程序运行后输出结果是#include<stdio.h>
输出为emoclew 也就是把welcome这个词反序了一下 p=str+strlen(str)\/2+1; 的意思是取得单词中间后面一个字符的地址指针 然后调用f(p,p-2); 就是把这个指针所指的字符进行对调,在这个程序最后再次调用f(s,t); 这种方法我们称之为递归调用。 在不满足条件if(*s),也就是指针所指字符为0时,...

...*s="\\t\\"Name\\Address\\n"; 则指针s所指字符串的长度为
长度是14,因为用strlen(s)时,是不包括最后的字符串结束符的\\t是转义字符,不计入,\\"也会翻译成转义字符,不计入,\\n也是,所以是14。转义字符运用时的注意事项:1、运用转义字符时需将转义字符放在需要转义的字符串的前方。2、正确掌握不同转义字符的作用,避免使用时对其作用理解混淆导致出现错误。

C语言利用指针替换字符串
先判断str[i]和fstr串的首个字符是否相等,不相等就直接输出,若相等,则用for循环进行字符串的匹配,若匹配成功,则输出替换后的rstr串,同时更行str[i]的位置。不成功输出str[i]到str[m](也就是第一个不匹配的地方)。这个算法大概是这个意思。但是 匹配不成功是应该 从 str[i+1]的位置重新...

C语言用指针编程实现strcat函数的功能
1、首先打开vs2014,新建一个项目。2、添加头文件。3、添加main主函数。4、定义一个函数addTwoNumbers。5、在main函数定义a,b,sum。6、声明函数指针ptr_sum。7、将addTwoNumbers函数地址赋值给ptr_sum。8、运行程序,看看结果。

平阴县19769877031: 怎样将指针所指的字符串赋给字符数组? -
柘宋香砂: 比如:#includevoid main() { char *p="abcde",c[10]; strcpy(c,p); printf("%s",c); } 结果:abcde 即可实现将 p的内容赋值给c.

平阴县19769877031: 如何将字符串指针所指内容付给一个字符串数组 -
柘宋香砂: 不能一次性赋值 只能循环用strcpy 比如 字符串指针为p, 字符串数组为a, 共计n个字符串 那么1 2 3inti; for(i = 0; i< n; i ++)strcpy(a[i], p[i]);

平阴县19769877031: 怎样将指针所指的字符串赋给字符数组? -
柘宋香砂: 比如:#include<string.h>voidmain(){char*p="abcde",c[10];strcpy(c,p);printf("%s",c);}结果:abcde即可实现将p的内容赋值给c.

平阴县19769877031: 如何把一个字符指针指向的字符串复制给字符数组 -
柘宋香砂: 假如有char *p且p已指向一含有10个元素的字符数组,现有目标数组char b[10],则可以有三种函数可以实现字符串复制.1、strcpy 语法格式: strcpy(目标地址,源地址) 此例语法:strcpy(b,p); 将源地址后的字符逐一复制到目标地址中,直...

平阴县19769877031: 怎么将指针指向的字符串赋值给数组 -
柘宋香砂: #include<stdio.h>#include<string.h> char *copystr(const char*s1,char p1[100]) { int i=0; while(s1[i]!='\0') { p1[i]=s1[i]; i++; } p1[i]='\0'; return p1; } int main() { const char *s="hello! what are you doing?"; char p[100]; char *q; q=(char*)s;//这句话直接把s的地址赋值给q copystr(s,p);//这个是函数一个一个赋值 puts(p); puts(q); return 0; }

平阴县19769877031: 如何将指针的内容赋给字符数组? -
柘宋香砂: char* p="123";//字符串不是字符 char data[128]; memcpy(data, p, strlen(p)+1);//注意字符串的末尾'\0' 或 strcpy(data,p);

平阴县19769877031: 字符串指针赋值给字符串数组 -
柘宋香砂: 1、确保你字符串数组的容量够大(用strlen()函数获得原字符串长度,注意没有包含结束符). 2、使用strcpy()函数

平阴县19769877031: C++中如何将字符指针指向的内容赋给一个字符数组 -
柘宋香砂: 可以使用库函数strcpy,或者自己来实现 简单的说,就是:定义一个指针指向str,例如char *cur=str; while(*p!='\0')*(cur++)=*(p++);

平阴县19769877031: c语言如何把一个指针指向的字符串,放到另一个数组中 -
柘宋香砂: #include<iostream>#include<string> using namespace std; int main() { char s[]="asdfghjk",b[20]; strcpy(b,a); //直接使用字符串拷贝就可以了 cout<<b; return 0; } 如果是char *b = a的话只是把a和b所指向的内存一样,如果修改了a的值则b的值也会同时进行修改.如果是 for(int i=0;i<20;i++) *(b+i)=*(s+i);或strcpy(b,a)则修改a的值不影响b;

平阴县19769877031: C语言中如果将一个指针所指向的字符串赋给数组? -
柘宋香砂: 数组声明的时候就要指定大小的 可以用memcpy,对于字符串,也可以用strcpy或strncpy(需要包含string.h) 比如:char *p="abc"; char a[10]; memcpy(a,p,sizeof(a)); 或者 strcpy(a,p); 或者 strncpy(a,p,sizeof(a));/* 比上面的strcpy安全 */ PS:关于sizeof,取数组的时候是数组的大小,指针的话,32位机器,会是4,所以字符串指针不用sizeof取长度,用strlen();

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