1樓:匿名使用者
你程式名字有問題
我看名字,好像是字串連線函式strcat但是看程式內容,實現的是字串包含函式strstr程式有個小問題,就是ptemp這個指標,最好需要申請記憶體,要不然容易導致崩潰
程式的思路就是:
先算pstr1和pstr2的長度
接著從pstr1中取出和pstr2等長的一個字串,和pstr2比較如果相同,則跳出迴圈,並判斷是否超出1的長度如果超出,則沒有
2樓:
比較同意1樓觀點,從str1中拷貝一個str2長度的字串然後比較。
感覺最後實際功能應該是在str1中找str2第一個問題是:temp是野指標。程式容易崩潰。
第二個問題是:你的函式名稱為嘛交strcat,這和strcat 有半毛錢關係嗎?引起歧義。你這個感覺就是一個strstr的重寫。而且寫的怪怪的
你的目的到底是啥?找子串?找到了返回0,否則-1蠻?
3樓:紫荊
#include
#include
#include
/*程式目的是驗證輸入字串pstr2是否是pstr1 的字串,採用依次從擷取pstr1擷取pstr2等長的字串再比較*/
int fnmystrcat(char *pstr1,char *pstr2)
a=i;
while(pstr2[j] != '\0')//獲取pstr2長度並賦給b
b=j;
for(i=0;i
ps:要養成書寫**規範性,對以後的發展大有幫助
4樓:冀鵾
ptemp連記憶體都沒分配 執行就段錯誤了
5樓:潯霧啟示
就是自己寫的strcat()...
6樓:匿名使用者
這個問題是解決已存在的字串ch1與需要輸入的字串ch2大小的比較的程式
char ch1[80]= "string one sdfsa werwec gerqq",ch2[10]; //定義一個字串ch1
scanf("%s",ch2); //定義一個字串ch2 需要手動輸入
輸出呼叫函式結果 實參為ch1 ch2
int fnmystrcat(char *pstr1,char *pstr2) //pstr1 pstr2為形參
//將pstr1的內容傳遞給ptemp裡 ptemp[j]='\0'; //在ptemp的最後新增結束符號 if(strcmp(ptemp,pstr2)==0) //比較一下這兩個字串的大小 若相等則結束迴圈
break;
else i=i-b; //如果兩個字串不相等 則另 i 減去pstr2的長度 }
if (i==(a-b+1))
return -1; //不相等則返回-1
else return 0; //相等則返回0}
C語言作業求詳細答案,C語言作業求答案
include int main int is sym long n int i,j,k,a 1000 flag 1 for i n,j 0 i 0 i 10,j a j i 10 for i 0,k j 1 i int is sym long m dowhile m 0 if newvalue m...
c語言題目,求高手,一道c語言題,求高手解釋下這題!
3.程式設計判斷m是否為素數,已知0和1不是素數。include int isprime int m main 4.輸入一行字元,統計其中的英文字元 數字字元 空格及其它字元的個數 include include define arr size 80 main printf english char...
c語言中如何進行四捨五入求詳細解釋謝謝
方法一 include int main double d1,d2,d3 d1 3.1415926 d2 int d1 10 0.5 0.1 printf d1 f,保留一位小數的結果為 1f n d1,d2 d3 int d1 1000 0.5 0.001 printf d1 f,保留三位小數的結...