c語言有符串,包含n個字元。寫一函式,將此字串中從第m個字元開始的全部字元複製成為另字串

2022-02-24 16:02:23 字數 6462 閱讀 2103

1樓:問明

#include

void main(){

void copy(char*,int,int);

int n,m;

char string[100];

printf("enter a number n:");

scanf("%d",&n);

printf("enter a string:");

scanf("%s",&string);

printf("enter a number m:");

scanf("%d",&m);

copy(string,n,m);

return 0;

void copy(char*str,int n,int m){int i,j;

char string[100];

char*p=string;

i=m-1;

j=0;

str=str+i;

for(;i*(p+j)=*(str++);

printf("%c\n",*(p+j));

printf用法

//以下程式用於獲得輸入值i,j並將其輸出(i,j之間以逗號隔開)#include

int main()

int i,j;

scanf("%d%d",&i,&j);

printf("i=%d;j=%d",i,j);

return 0;

#include

int main()

return 0;

format

format引數是包含三種物件型別的一個字串:

*無格式字元複製到輸出流;

*轉換規範,每個規範導致在值引數列表中檢索1個或更多個項;

*轉義序列。

通常意義上format的格式如下:

%[flags][width][.prec][f|n|h|l]type

2樓:匿名使用者

#include

#include

int main()

void copy(char *p1,char *p2,int m)}這樣和你的程式更接近一些吧

3樓:亞馬遜選品管家

這樣就好了:

#include "stdafx.h"

#include

#include

int main()

void copy(char *p1, char *p2, int m)

*p2 = *p1;            // 設定p2為'\0'}

有一個字串,包含n個字元,寫一函式,將此字串從第m個字元開始的全部字元複製成另一個字串,。大

4樓:金色潛鳥

b 用 b[80];

n 用 strlen() 算出來,不能輸入。

假定 m 從 1起算。

複製時要含字串結束符 ,便可用 %s 格式 輸出。

#include

int main()

5樓:匿名使用者

個人猜想你想實現的功能是將a字串中從m到n的字元都替換為b中的字元吧

for (i=m;(i= 0) //輸入的m有可能是負數,不加限制會記憶體越界}

6樓:喵不語

應該是*(a+i)=*b++;

在迴圈條件裡還要加上當b中內容複製完後也應該停止迴圈!

7樓:聽不清啊

#include

int n,m;

char str[100],string[100];

void a(char str)

int t=0,i;

for(i=m-1;i<=n;)                /*改寫了,更為簡潔*/

string[t++]=str[i++];

int main()

gets(str);

n=strlen(str);            /*用此係統函式來求取str的串長度更為方便、可靠*/

scanf("%d",&m);

a(str);

puts(string);

return 0;

8樓:匿名使用者

方法有很多種,我就說用c語言實現的兩種方法,測試能用!

int m=3;

char src="0123456789";

char dst[10]=;

strcpy(dst,src);

//1memcpy(dst,src+m,strlen(src)-m);

printf"%s\n",dst);

//2for (int i=m;i

突然發現你說用指標寫,你應該知道陣列名稱就是指標吧

9樓:匿名使用者

一、char b[80] ; //要與a相同長度二、int j=0;

for( i=m-1;i

b[j++]=a[i] ;

b[j]='\0';

printf("%s", b );

有一字串,包含n個字元。寫一函式,將此字串中從第m個字元開始的全部字元複製成為另一個字串 5

10樓:凌亂心扉

#include

using namespace std;

int main()

else

return 0;

}void copy1(char*str1,char*str2,int m)

while(*str1!='\0')

*str2='\0';

}include用法:

#include命令預處理命令的一種,預處理命令可以將別的源**內容插入到所指定的位置;可以標識出只有在特定條件下才會被編譯的某一段程式**;可以定義類似識別符號功能的巨集,在編譯時,前處理器會用別的文字取代該巨集。

插入標頭檔案的內容

#include命令告訴前處理器將指定標頭檔案的內容插入到前處理器命令的相應位置。有兩種方式可以指定插入標頭檔案:

1、#include《檔名》

2、#include"檔名"

如果需要包含標準庫標頭檔案或者實現版本所提供的標頭檔案,應該使用第一種格式。如下例所示:

#include//一些數學函式的原型,以及相關的型別和巨集

如果需要包含針對程式所開發的原始檔,則應該使用第二種格式。

採用#include命令所插入的檔案,通常副檔名是.h,檔案包括函式原型、巨集定義和型別定義。只要使用#include命令,這些定義就可被任何原始檔使用。如下例所示:

#include"myproject.h"//用在當前專案中的函式原型、型別定義和巨集

你可以在#include命令中使用巨集。如果使用巨集,該巨集的取代結果必須確保生成正確的#include命令。例1展示了這樣的#include命令。

【例1】在#include命令中的巨集

#ifdef _debug_

#define my_header"myproject_dbg.h"

#else

#define my_header"myproject.h"

#endif

#include my_header

當上述程式**進入預處理時,如果_debug_巨集已被定義,那麼前處理器會插入myproject_dbg.h的內容;如果還沒定義,則插入myproject.h的內容。

11樓:匿名使用者

改成如下,可執行:

#include

int n,m;

char str[100],string[100];

void a(char *str)    //此str並非str[100],兩者之間沒有關係

***********************************===

整體來說,你這個程式這樣設計是存在問題的,比如:n=10,但str[100]裡存放的字元個數卻少於10個,就會產生錯誤。

12樓:聽不清啊

#include

int n,m;

char str[100],string[100];

void a(char str)

int main()

編輯c語言程式有一個包含n個字元的字串,用指標實現將字串中從第m(m<=n)個字元開始的全部字元

13樓:匿名使用者

#include

// 將長度為n的字串str從第m個字元開始全部變成chchar *myedit(char *str, int n, int m, char ch)

int main()

// 執行結果:hello world, hello c!!!!!!!!

14樓:匿名使用者

#include#includevoid main(void) *pszdest='\0'; puts(szstrdest);}

有一字串,包含n個字元。寫一個函式,將此字串中從第m個字元開始的全部字元複製成為另一個字串。

15樓:fzy範忠雲

#include

void main()

char a="i am a student.i must study hard!",b[34];

char *p,*p1=b;

int m;

printf("原字串是:\n%s\n",a);

printf("請輸入m的值\n");

scanf("%d",&m);

for(p=a+m;*p1++=*p++;);

printf("複製後的字串是:\n%s\n",b);

輸入5回車

結果輸出

a student.i must study hard!   (因為陣列的下標是從0開始的)

沒獎賞就不多解釋啦

自己琢磨一下哈

16樓:有錢買不起房子

#include

#include

#include

//將str1第m個字元開始後面字元都考入str2int str(char * str1,char * str2,int n,int m)

dowhile(*p!='\0');

*str2='\0';

return 1;

}int main()

有一字串,包含n個字元 寫一函式將此字串中從第m個字元開始的全部字元複製成另一個字串

17樓:匿名使用者

#include

char *mystrncpy(char *d,char *s,int m)

int main()

18樓:聽不清啊

#include

int n,m;

char str[100],string[100];

void a(char str)

int t=0,i;

for(i=m-1;i<=n;)                /*改寫了,更為簡潔*/

string[t++]=str[i++];

int main()

gets(str);

n=strlen(str);            /*用此係統函式來求取str的串長度更為方便、可靠*/

scanf("%d",&m);

a(str);

puts(string);

return 0;

有一字串,包含n個字元。寫一函式,將此字串中從第m個字元開始的全部字元複製成為另一個字串。

19樓:

#include

#include

void copystr(char* d,char* s,int n)

void main ()}

20樓:和藹的甜心

21樓:匿名使用者

#include

#include

void ncpy(char *p,char *q,int m)}int main(void)

22樓:匿名使用者

#include

#include

char* copy_1(char *a,int m,int n)main()

C語言輸入一串字串從第n個字元開始擷取m個字元組成新的字串輸出

1 我們編輯如圖復中輸入的代制碼。2 進入原始檔的目錄下,在終端輸入命令gcc o t test.cpp。3 輸入.t命令,執行生成的可執行檔案。4 執行結果為baidu。5 strncpy 的函式原型char strncpy char dest,char src,size t n 我們在複製src...

c語言輸入字串,將該字串中從第m個字元開始的全部字元複製到另字串

這樣 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 c...

C擷取字串c怎麼取字串的第一個字元

可以用substr這個方法,有兩個輸入引數分別為起始地址和擷取的長度。s2 s1.substr 0,3 s3 s1.substr 4,3 如果寫的更通用一點,就是先查詢 的位置,然後在分隔。size t ipos s.find s2 s1.substr 0,ipos s3 s1.substr ipo...