c语言指针复制字符串
❶ c语言指针字符串赋值
在C语言中并没有字符串这个类型。所说的字符串就是字符数组。也就是char类型的数组。
与普通数组不同的,字符串必须以'\0'作为结束符。
而在C语言中,类型为T的一维数组,其首地址等效于该类型的一维指针,即T*型。
于是字符串,也就是字符数组,首地址就可以当做char *型使用了。
事实上,在库函数以及大多数使用到字符串作为参数的函数中,其参数都是char *型的。
❷ C语言 用字符串指针实现两个字符串的复制 我写成这样的但是程序一直不能运行是哪里错了嘛请大佬们指点
把for(*p1!='\0';p1++;p2++);和*p2='\0';两行改成whie(*p2++=*p1++);就可以了……
❸ C语言求助字符指针复制函数~
#include<stdio.h>
int main()
{
void (char *from,char *to);
char a[81]; //源串数组
char b[81]; //目标串数组,此数组要保证不小于源串,不然,数据会产生越界问题
printf("input a string:" );
gets(a); //输入一个字符串数据,如:hello,world
(a,b);
printf("%s\n",b);
return 0;
}
void (char *from,char *to)
{
for(;*from!='\0';from++,to++)
{
*to=*from;
}
*to='\0';
}
❹ c语言指针小程序的问题,就是字符串的复制,如果2个字符串长度不等。
有一点问题:
#include
<stdio.h>
int
main()
{
void
_string
(char
from[],char
to[]);
char
a[80]="I
am
a
teacher.";
//最好直接分配空间,使用指针变量赋值,
//容易出现非法操作关闭的现象,因为字符串常量所在区间为常量区间
char
b[]="I
am
a
good
student.";
printf("string
a=%s\nstring
b=%s\n",a,b);
printf("
string
a
to
string
b:\n");
_string(b,a);
printf("string
a=%s\nstring
b=%s\n",a,b);
return
0;
}
void
_string
(char
from[],char
to[])
{
char
*p1,*p2;
p1=from;
p2=to;
while(*p1!='\0')
*p2++=*p1++;
*p2='\0';
//复制完成后,要将字符串结束符加上,因为前面的循环是复制到'\0'为止的
}
❺ C语言,指针函数实现字符串的复制,连接,比较长度
复制函数strcpy 连接函数strcat 长度strlen 比较大小strcmp 包含在头文件string.h 可以打开那个头文件看具体程序段
❻ C语言中如何用指针复制字符串
#include<stdio.h>
#include<string.h>
char*string(char*str2,char*str1);
intmain(){
charstr1[30]="hello,stringcopied! ";
charstr2[30];
printf("str2=%s ",string(str2,str1));
return0;
}
char*string(char*str2,char*str1){
char*tmp=str2;
while(*tmp++=*str1++);
returnstr2;
}
❼ C语言中,用指针实现字符串的拷贝,不能用strcpy,用自定义函数实现该功能
#include<stdio.h>
#include<assert.h>/*断言的头文件*/
char*my_strcpy(char*dest,const char*src)
/*传参,把src依次传给dest,指针数组,每一个都是地址*/
{
char*ret=p;/*接收的为地址*/
assert(src!=NULL);
/*,使用指针一定要先用查找函数判断是否为空,防止不小心将空地址传递*/
while(*dest++=*src++)
{
;
}
return p;/*返回的ret为字符串则用char,且为地址*/
}
int main()
{
char arr1[]="Hello world!";
char arr2[20];
char*ret=my_strcpy(arr2,arr1);
printf("%s",ret);/*打印出的为字符串*/
return 0;
}
注:%g、%G在小数点位数四位或指数大于等于精度时用%e、%E,否则用%f。
❽ 指针复制字符串问题(C语言)
#include <stdio.h>
void (char *a,int n,char *b);
int main(int argc, char * argv[])
{
char p[]="AAAAAAAAAA",q[]="BBBBBBBBBB";/*这样声明是为了把字符串放入变量区,否则你用时会出现段保护错误.*/
int a=5;
(p,a,q);
puts(q);
return 0;
}
void (char *a,int n,char *b)
{
int i;
for(i=0;i<n;i++)*(b+i)=*(a+i);
*(b+n)='\0';
}
实参字符串你已经改变了.是通过指针.
❾ 怎样用字符指针实现两个字符串的拷贝,求c语言程序
int *p *q
将设将q中的复制到p中
while(*q!='