c語言復制字元串
❶ 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]; //實現數據拷貝 }}
❷ c語言,字元串復制問題
#include
<stdio.h>
#include
<string.h>
int
main()
{
char
a[7]="abcdef";
char
b[4]="ABC";
//strcpy只管拷貝,拷到\0結束,後邊就不會管了.用printf("%s\n",a)也只輸出到\0
//b只有3個字元,拷到a[2]再a[3]放個字元結束符\0,後邊原由的字元沒動過,還在
strcpy(a,b);
printf("%c\n",a[5]);
return
0;
}
❸ 關於C語言 兩個字元串復製程序
#include<stdio.h>
#defineLSIZE81
voidstr(char[],char[]);
intmain()
{
charmessage[LSIZE];
charnewMessage[LSIZE];
inti;
printf("輸入字元串:");
gets(message);
for(i=0;newMessage[i]=message[i];i++);
puts(newMessage);
return0;
}
❹ c語言字元串的復制
1、首先需要建立一個新的文件,輸入頭文件和主函數。
❺ C語言字元串復制函數問題
不能用字元數組,學過c++你就應該明白字元串有常量和變數注意區分它們,這是可能造成錯誤
❻ C語言 字元串復制
將指針p 的類型由int改為char就可以了
❼ C語言復制字元串問題
不能刪除。因為'\0'是字元串結束符,讀內存,遇到它就表示一個字元串結束了;
如果沒有s2[j]='\0'; 則在讀字元串s2的時候,很可能緊接著的內存還有數據,就會一並被認為是s2字元串的內容了。
看起來,你是要實現strcat的功能!
❽ C語言字元串復制問題
這樣聲明的字元串相當於const類型的,只能訪問不能操作, 所以把b換成數組吧.就是在棧區了.