c語言字元拷貝
① c語言字元串拷貝
數組名是個地址常量,常量是不能修改的,所以++操作不能應用在數組名上
而函數參數里的數組只是一個指針而已,也就是說你調用mystrcpy時,函數會產生兩個指針分別指向str1和str2的首地址,這兩個指針就可以用++操作了
② c語言請填空以實現字元串拷貝
若有定義語句:
char
s[100],d[100];
int
j=0,i=0;
且s中已賦字元串,請填空以實現字元串拷貝,(註:不得使用逗號表達式)
while
(s[i]){
d[j]=填空;j++}d[j]=0;
填空部分
s[i++]為什麼
while
(s[i]){
d[j]=填空;j++}d[j]=0;
是什麼意思?
while
的判斷條件
為
s[i],那麼在循環里i一定要變,不讓就是使循環了,又要把s[]的值賦給d[],i還要變只有d[j]=s[++i]和d[j]=s[i++]兩個選擇了,++i是先加後用,i++是先用後加,用初始條件判斷,d[0]=s[0],如果是s[++i]的話
就變成
d[0]=s[1]了不行,只能是s[i++]
第二題是個基本概念
struct
STRU是數據類型的全稱,定義的時候當然要用
struct
STRU
t[20]了
PS:這兩個題都挺基本的,建議多看看書吧
③ c語言字元串的復制
1、首先需要建立一個新的文件,輸入頭文件和主函數。
④ 用c語言寫一個字元串拷貝函數
*q='\0';
return
*q;
所以函數返回的是『\0』。然後主函數裡面你的printf列印輸出的是函數的返回值而不是num這個數組,你把%s後面的參數改成num就行了。
⑤ 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語言程序
int *p *q
將設將q中的復制到p中
while(*q!='