當前位置:首頁 » 編程語言 » c語言指針復制字元串

c語言指針復制字元串

發布時間: 2022-02-16 14:37:15

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&lt;stdio.h&gt;

#include&lt;assert.h&gt;/*斷言的頭文件*/

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!='')

*p++=*q++;

char *(char *t,char *s)

{

char *p=t;

while (*t++=*s++)

return p;

}

(9)c語言指針復制字元串擴展閱讀:

通常以串的整體作為操作對象,如:在串中查找某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。兩個字元串相等的充要條件是:長度相等,並且各個對應位置上的字元都相等。設p、q是兩個串,求q在p中首次出現的位置的運算叫做模式匹配。串的兩種最基本的存儲方式是順序存儲方式和鏈接存儲方式。

❿ 用指針的方法來復制字元串問題(C語言)

問題在這一句:char *p="AAAAAAAAAA",*q="BBBBBBBBBB";
把*p改成p[],*q改成q[]就行了,這兩個東西可不一樣啊,*p中的p是指向字元串常量指針,其指向的內容是不能更改的,所以你要在函數中修改裡面的內容,那就會出錯,但是p[]是數組,裡面的內容是能修改的,

函數裡面定義函數,有點不妥。都是譚浩強教出來的。

熱點內容
方舟和輻射4哪個要求配置高 發布:2025-01-09 09:48:14 瀏覽:874
如何遊玩我的世界外國伺服器 發布:2025-01-09 09:21:27 瀏覽:468
烏克蘭編程 發布:2025-01-09 09:16:33 瀏覽:310
python填充0 發布:2025-01-09 09:16:32 瀏覽:364
流通值源碼 發布:2025-01-09 09:05:45 瀏覽:147
什麼是雙套配置保護 發布:2025-01-09 09:04:17 瀏覽:755
聯想電腦忘記開機密碼怎麼辦 發布:2025-01-09 08:59:06 瀏覽:941
微信機器人介面源碼 發布:2025-01-09 08:57:30 瀏覽:669
電腦主要配置參數都有哪些 發布:2025-01-09 08:56:56 瀏覽:858
csgo躲貓貓伺服器怎麼都是沒人的 發布:2025-01-09 08:56:47 瀏覽:485