1樓:大野瘦子
這樣:#include
#include
int main ()
void copystr(char *,char *,int);
int m;
char str1[20],str2[20];
printf("input string:");
gets(str1);
printf("which character that begin to copy?");
scanf("%d",&m);
if(strlen(str1) < m)
printf("input error!");
else
copystr(str1,str2,m);
printf("result:%s\n",str2);
return 0;
void copystr(char *p1,char *p2,int m)
int n;
n = 0;
while(n < m - 1)
n++;
p1++;
while(*p1 != '\0')
*p2 = *p1;
p1++;
p2++;
*p2 = '\0';
注意事項
/*輸入一個字串,將該字串中從第m個字元
開始的全部字元複製成另一個字串。m由使用者
輸入,小於字串的長度。*/
#include
#include
void mcopy(char array1,char array2,int m)
int i,j;
for(i=m-1,j=0;array2[j]!=0;i++,j++)
array1[i]=array2[j];
array1[i]=0;
int main()
char array1[20],array2[10];
int m;
printf("give array1:");
gets(array1);
printf("give array2:");
gets(array2);
printf("give m:");
scanf("%d",&m);
mcopy(array1,array2,m);
printf("after changed:");
puts(array1);
return 0;
2樓:會飛的小兔子
#include
#include
intcopy(char*p1,char*p2,intm);
intmain()
charstr1[40],str2[40];
printf("輸入第一個字串:\n");
gets(str1);
intm;
printf("輸入第m個字元開始:\n");
scanf("%d",&m);
if(strlen(str1)printf("錯誤");
else
copy(str1,str2,m);
printf("%s",str2);
return0;
intcopy(char*p1,char*p2,intm)
intn;
n=0;
while(nn++;
p1++;
while(*p1!='\0')
*p2=*p1;
p1++;
p2++;
擴充套件資料
c語言字元指標字串複製
#include
voidcopy(chardststr,charsrcstr);
intmain()
chara[100],b[100];
printf("pleaseenterastring:");
gets(a);//輸入字串,存放陣列a中
copy(b,a);//將字元陣列a中的字串複製到b中
printf("thecopyis:\n");
puts(b);//輸出複製後的字串b
return0;
voidcopy(char*dststr,char*srcstr)
while(*srcstr!='\0')//迴圈直到字元srcstr[i]是字串的結束標誌為止
*dststr=*srcstr;//複製當前指標所指向的字元
srcstr++;//使srcstr指向下一個字元
dststr++;//使dststr指向下一個儲存單元
*dststr='\0';//在字串dststr的末尾新增字元的結束標誌,避免複製的字串溢位
//或則函式copy()編寫成這樣
voidcopy(char*dststr,char*srcstr)
do*dststr=*srcstr;//複製當前指標所指向的字元
srcstr++;//使srcstr指向下一個字元
dststr++;//使dststr指向下一個儲存單元
}while(*srcstr!='\0');//迴圈直到字元srcstr[i]是字串的結束標誌為止
事實上,還可以如下更為簡潔的形式編寫函式copy():
voidcopy(char*dststr,char*srcstr)
while((*dststr++=*srcstr++)!='\0')//迴圈直到字元srcstr[i]是字串的結束標誌為止
3樓:匿名使用者
當然是一個字元了 你的函式的引數應該如下改#include
int m=3;int i;
int sort(char *p3,char *p4)}int main(int argc, char *argv);char b[10]=;
char *p1,*p2;
p1=&a[0];
p2=&b[0];
sort(p1,p2);
printf("%s",*p1);
return 0;}
4樓:
#include
int m=3;int i,j;
void sort(char st,char ss)}int _tmain(int argc, _tchar* argv)
;char b[10]=;
sort(a,b);
printf("%s",a);
return 0;}
編寫一個程式,將字串中的第m個字元開始的全部字元複製到另一個字串。 5
5樓:南瓜蘋果
**如下:
#include
#include
int copy(char *p1,char *p2,int m);
int main()
return 0;
}int copy(char *p1,char *p2,int m)while(*p1!='\0')
}擴充套件資料字串一般記為 s=“a1a2···an”(n>=0)。它是程式語言中表示文字的資料型別。在程式設計中,字串(string)為符號或數值的一個連續序列,如符號串(一串字元)或二進位制數字串(一串二進位制數字)。
通常以串的整體作為操作物件,如:在串中查詢某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。
兩個字串相等的充要條件是:長度相等,並且各個對應位置上的字元都相等。設p、q是兩個串,求q在p中首次出現的位置的運算叫做模式匹配。
串的兩種最基本的儲存方式是順序儲存方式和連結儲存方式。
6樓:聽不清啊
#include
void copystring(char *sourcestr, char *tagstr, int m)
int main ()
c語言取某個字元後的字串存到另一個字串
7樓:匿名使用者
思路:先遍歷字串,如果找到該字元後,把後面的所有字元複製到另一個字串。
例如:#include
#include
int main ()
ch2[j]='\0';
puts(ch2);
return 0;}/*
輸出:56789*/
8樓:
**如下。。。我測試過了。。。。
#include "stdio.h"
main()
for(i=0;j result1[i] = '\0'; puts(result1); for(i = 0; i for(i=0;j result2[i] = '\0'; puts(result2); getch(); }希望對你有幫助。。。。仍有問題可以hi我。。。。。 9樓:千鋒教育 #include #include//支援strlen()的應用#include//支援exit(1) char *mcopy(char*s ,int m); //函式的定義 void main(void) str2=mcopy(str1,m); //程式的呼叫for(int j=0;j printf("字串第%d個元素是%c\n",m++,str2[j]); //字元的輸出 }char *mcopy(char*s ,int m)return array;} 10樓:手機使用者 #include #include void main() 11樓:匿名使用者 #include void main() 執行如下: [ 58.154.16.0 - 58.154.31.255] 你是說書上讓你補全 那麼,你把原來的題目,完整寫上來,添空處有幾行寫清楚!我讀了你的 修改如下 我測試了幾個,沒有發現問題。dim c s a as string 1 s變數顯然應該用字元型別 dim k as integer,j as integer 這個是我加的變數宣告 c text1 s le... 字串初始化,如果逐個賦值的話,系統不是會自動新增 0 嗎不是。圖一就是長度為4的陣列,圖二長度為5圖三會是新增 0,但是是會把後面所有的都設為 0因為圖一和圖四不以 0結尾,所以不能用strlen和strcmp,會越界 圖四也可以用char str 4 stop 這樣賦值。如果不手動加長度就會是5了... 這個問題其實有兩個注意點 字串的儲存。c c 裡面斜槓是轉義符,因此所檢閱的字串中如何有 的話,比如是這樣的格式 否則你應該按位元組處理。如果是c 那麼用類庫就可以解決。下面的例子通過stringstream轉儲string,然後分割儲存到vector中,最後數數vector的size,然後 1,就...輸入任意長度的字串,將該字串中的字元按ASCII碼值升序排列後輸出
C語言字串問題,C語言字元陣列與字串問題
c 字串擷取,C 擷取字串