當前位置:首頁 » 編程語言 » c語言用指針復制字元串
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言用指針復制字元串

發布時間: 2022-06-02 15:59:47

1. c語言,指針函數實現字元串的復制,連接,比較長度

復制函數strcpy 連接函數strcat 長度strlen 比較大小strcmp 包含在頭文件string.h 可以打開那個頭文件看具體程序段

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

你的主要錯誤是對常量進行賦值!
指針p,q都指向常量字元串,不是指向可變的內存。
所以你通過p,q對內存進行操作是錯誤的。
如果你先對p,q進行new char操作,然後將你的字元串賦值到這塊內存中,接下來再進行你程序中的操作。

3. C語言中,用指針實現字元串的拷貝,不能用strcpy,用自定義函數實現該功能

#include<stdio.h>
#include<time.h>

/*把從src地址開始的字元串復制到以dest開始的字元串中*/
char*str(char*dest,char*src){
char*r=dest;
while((*r++=*src++)!='');
returndest;
}

intmain(){
char*str1="abcde";
char*str2;

str2=str(str2,str1);/*把str1復制到str2*/

puts(str2);

return0;
}

運行結果

4. C語言實現字元串拷貝函數的幾種方法

首先是使用庫函數
比如下面代碼

void ourStrCopy(char S1[] , char S2[]){ strcpy(S1, S2); //該函數還有另一個版本可以按長度截取 }

還有一個函數是memcpy,這個是內存拷貝,原型是

void memcpy(void *dest, const void *src, size_t n); 需要注意的是這個函數第一個和第二個指針都是void型且第二個指針不能被修改,第三個參數是需要拷貝的內存長度按位元組記。

然後是用指針引用,注意這個並非賦值,而是引用,這種操作需要注意內存。

char s1[] = "abcdefg";//定義一組字元串char *s2 = s1;//按照指針拷貝字元串

第三種方法就是直接賦值了

void outStrCopy(char s1[] , char s2[]){ int len1 = strlen(s1);//獲取第一個字元串的長度 int len2 = strlen(s2);//獲取第二個字元串的長度 int len = 0; //字元串總長度 if(len1 <= len2){ len = len2; //選擇COPY的長度 }else{ len = len1; } for(int i = 0 ; i < len ; i++){ s1[i] = s2[i]; //實現數據拷貝 }}

5. C語言,怎麼把一個指針的內容復制到另一個指針

strcpy(nam,p1->name);
p2->grade=grade;
strcpy(p2->name,nam);

strcat 是連接兩個字元串的,如果多連接幾個, nam就會溢出數組了……
strcpy 才是拷貝字元串的正確函數。

6. 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'為止的
}

7. 指針復制字元串問題(C語言)

1、我在主程序中沒有看到任何調用程序的入口
2、void 應該是無值返回函數、程序
3、return0;什麼?這應該寫在子函數、程序中的吧
4、(int argc, constchar * argv[]) 有意義嗎?沒看到有任何作用啊

其他的可能還有

8. 怎樣用字元指針實現兩個字元串的拷貝,求c語言程序

int *p *q
將設將q中的復制到p中
while(*q!='\0')
*p++=*q++;
姐這么簡單