#includestdio.h
賽罕網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,賽罕網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為賽罕千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的賽罕做網(wǎng)站的公司定做!
char *custom_cpy(char *to,char *from);
int main(int argc,char *argv[]){
char *from = "i like c langanger";
char to[30];
char *ptr = custom_cpy(to,from);
printf("%s,%s\n",ptr,to);
return 0;
}
char *custom_cpy(char *to,char *from){
if(to == NULL || from == NULL){
return NULL;
}?
char *p = to;
for(;*from!='\0';from++,to++){
*to = *from;
}?
*to = '\0';//拷貝完畢之后一定要加一個結(jié)束符號
return p;
}
擴展資料:
字符串相關(guān)函數(shù)應(yīng)用:
1. 連接運算 concat(s1,s2,s3…sn) 相當(dāng)于s1+s2+s3+…+sn。
例:concat(‘11’,'aa’)='11aa’;
2. 求子串。 Copy(s,I,I) 從字符串s中截取第I個字符開始后的長度為l的子串。
例:copy(‘a(chǎn)bdag’,2,3)=’bda’;
3. 刪除子串。過程 Delete(s,I,l) 從字符串s中刪除第I個字符開始后的長度為l的子串。
例:s:=’abcde’;delete(s,2,3);結(jié)果s:=’ae’;
4. 插入子串。 過程Insert(s1,s2,I) 把s1插入到s2的第I個位置
例:s:=abc;insert(‘12’,s,2);結(jié)果s:=’a12bc’;
5. 求字符串長度 length(s) 例:length(‘12abc’)=5;
參考資料:
百度百科-字符串
1、strcpy函數(shù)是復(fù)制字符串的,接受兩個參數(shù),一個是被復(fù)制字符串,另一個新字符串。具體的用法,首先打開編輯器新建一個c語言的程序文件,寫入頭文件和主函數(shù):
2、接著定義兩個數(shù)組a和b,程序經(jīng)過strcpy函數(shù)處理,將b數(shù)組中的字符串復(fù)制到a數(shù)組中,最后打印出結(jié)果:
3、最后來看看效果。打開調(diào)試窗口,輸入一句話,按下回車輸出了這句話。以上就是C語言中strcpy的用法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include stdio.h
#include time.h
/*把從src地址開始的字符串復(fù)制到以dest開始的字符串中*/
char* strcopy (char* dest, char *src) {
char* r = dest;
while((*r++ = *src++)!='\0');
return dest;
}
int main () {
char *str1="abcde";
char *str2;
str2 = strcopy (str2, str1); /*把str1復(fù)制到str2*/
puts (str2);
return 0;
}
1、puts函數(shù)——輸出字符串的函數(shù)
一般的形式為puts(字符串組)
作用:將一個字符串輸出到終端。如,char一個string,并賦予初值。調(diào)用puts(string);進行字符串的輸出。
2、gets函數(shù)——輸入字符串的函數(shù)
一般的形式:gets(字符數(shù)組)
作用:從終端輸入一個字符串到字符數(shù)組,并且得到一個函數(shù)值成為字符數(shù)組的起始地址。
gets(str);
鍵盤輸入,,,,你懂得。
注意:puts和gets函數(shù)只能輸出或者輸入一個字符串。
3、strcat函數(shù)——字符串連接函數(shù)
一般的形式:strcat(字符數(shù)組1,字符數(shù)組2);
作用:把兩個字符串?dāng)?shù)組中字符串連接起來,把字符串2連接到字符串1的后面。
說明:字符數(shù)組1必須足夠大,以便容納連接后的新字符串。
4、strcpy/strncpy函數(shù)——字符串復(fù)制函數(shù)
一般形式:strcpy(字符數(shù)組1,字符串2);
作用:將字符串2復(fù)制到字符數(shù)組1中去。
如:char str1[10],str2[]="DongTeng";
strcpy(str1,str2);
執(zhí)行后的結(jié)果為:你懂得
注意:
1. 不能用賦值語句直接將一個字符串常量或者字符數(shù)組直接給一個字符數(shù)組。
2. 用strncpy可以賦值指定的位置的字符。strncpy(str1,str2,3);將str2中的第3個字符復(fù)制到str1中。
5、strcmp函數(shù)——字符串比較函數(shù)
一般形式:strcmp(字符串1,字符串2);
作用:用來比較兩個字符串的差異。具有不同的比較規(guī)則。
6、strlen函數(shù)——測字符串長度的函數(shù)
一般形式:strlen(字符數(shù)組);
如:char str[10]="DongTeng";
printf("%d",strlen(str));
得到的結(jié)果是:5
7、strlwr函數(shù)——轉(zhuǎn)換為小寫的函數(shù)
一般形式:strlwr(字符串);
8、strupr函數(shù)——轉(zhuǎn)換為大寫的函數(shù)
一般形式:strupr(字符串)。
首先是使用庫函數(shù)
比如下面代碼
void ourStrCopy(char S1[] , char S2[]){ strcpy(S1, S2); //該函數(shù)還有另一個版本可以按長度截取 }
還有一個函數(shù)是memcpy,這個是內(nèi)存拷貝,原型是
void memcpy(void *dest, const void *src, size_t n); 需要注意的是這個函數(shù)第一個和第二個指針都是void型且第二個指針不能被修改,第三個參數(shù)是需要拷貝的內(nèi)存長度按字節(jié)記。
然后是用指針引用,注意這個并非賦值,而是引用,這種操作需要注意內(nèi)存。
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]; //實現(xiàn)數(shù)據(jù)拷貝 }}