十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
首先要明白一點(diǎn)兒,C語言中字符串也是按一個一個字符存在""字符數(shù)組""中的哦! 用個數(shù)組作為隊列來存放
成都創(chuàng)新互聯(lián)公司是專業(yè)的金門網(wǎng)站建設(shè)公司,金門接單;提供網(wǎng)站制作、成都網(wǎng)站制作,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行金門網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
例如:int a[100] 將這個數(shù)組用在你要接收字符的函數(shù)里,將接收的字符按i遞增存放在a[]里
接收時用個for(i=0;i++;i=100)
{
a[i]=接收字符
}
這樣a[0]里裝的是第一個接收字符,a[1]是第二個,依次類推,字符串就被接收到a[]里了
輸出時同理再用個for循環(huán)就可以了,例如
for(i=0;i++;i=100)
{
printf a[i]
}
當(dāng)然要返回的字符串若是要用在其它的函數(shù)里也可以再定義個變量例如temp
可以temp=a[i]反正整個字符串都被保存在了數(shù)組a[]里,想怎么用可以了!
以上只是算法,具體代碼還得根據(jù)自己需要多動手訓(xùn)練哦!
/*
串a(chǎn):
abcdefghijklmnopqrstuvwxyz
串b:
01234567890123456789
串a(chǎn):
abcdefghijklmnopqrstuv012345678901234567
串c:
abcdefghijklmnopqrstuvwxyz
Press any key to continue
*/
#include?stdio.h
#define?MAXLEN?40
typedef?struct?{
char?ch[MAXLEN];
int?len;
}SString;
void?StrInsert(SString?*s,int?pos,SString?t)?{
int?i;
if(pos??0?)?pos?=?0;
if(pos??s-len?-?1)?pos?=?s-len;
if(s-len?+?t.len?=?MAXLEN)?{?//?長度適中
for(i?=?s-len?+?t.len?-?1;i??pos;i--)
s-ch[i]?=?s-ch[i?-?t.len];
for(i?=?0;i??t.len;i++)?s-ch[i?+?pos]?=?t.ch[i];
s-len?+=?t.len;
}
else?if(pos?+?t.len??MAXLEN)?{?//?長度超限1,從pos后不再有s的內(nèi)容
for(i?=?pos;i??MAXLEN;?++i)
s-ch[i]?=?t.ch[i?-?pos];
s-len?=?MAXLEN;
}
else?{?//?長度超限2,從pos?+?t.len后還有s的部分內(nèi)容
for(i?=?MAXLEN?-?1;?i?=?pos?+?t.len;?--i)
s-ch[i]?=?s-ch[i?-?t.len];
for(i?=?0;?i??t.len;?++i)
s-ch[i?+?pos]?=?t.ch[i];
s-len?=?MAXLEN;
}
}
//?在s中從pos位置開始刪除len個字符
int?StrDelete(SString?*s,int?pos,int?len)?{
int?i;
if(pos??0?||?pos??s-len)?return?0;
if(pos?+?len??s-len)?{?//?刪除s的中間部分
for(i?=?pos;i??pos?+?len;i++)
s-ch[i]?=?s-ch[i?+?len];
s-len?-=?len;
}
else?{?//?len太大
s-len?=?pos;
}
return?1;
}
SString?StrCopy(SString?*s,SString?t)?{
int?i;
for(i?=?0;i??t.len;i++)?s-ch[i]?=?t.ch[i];
s-len?=?t.len;
return?*s;
}
int?StrEmpty(SString?s)?{
if(s.len?==?0)?return?1;
return?0;
}
int?SteCompare(SString?s,SString?t)?{
int?i;
for(i?=?0;i??s.len??i??t.len;i++)
if(s.ch[i]?!=?t.ch[i])?return?(s.ch[i]?-?t.ch[i]);
return?(s.len?-?t.len);
}
int?SteLength(SString?s)?{
return?s.len;
}
void?StrClear(SString?s)?{
s.len?=?0;
}
void?StrShow(const?SString?s)?{
int?i;
for(i?=?0;?i??s.len;?++i)
printf("%c",s.ch[i]);
printf("\n");
}
int?main()?{
SString?stra?=?{"abcdefghijklmnopqrstuvwxyz",26};
SString?strb?=?{"01234567890123456789",20},strc;
StrCopy(strc,stra);
printf("串a(chǎn):\n");
StrShow(stra);
printf("串b:\n");
StrShow(strb);
StrInsert(stra,22,strb);?//
printf("串a(chǎn):\n");
StrShow(stra);
printf("串c:\n");
StrShow(strc);
return?0;
}
主函數(shù)就是程序運(yùn)行時,所在的函數(shù)。
一般習(xí)慣使用 main 作為主函數(shù)名。
main(),在c語言中稱之為“主函數(shù)”,一個c程序有且僅有一個main函數(shù),任何一個c程序總是從main函數(shù)開始執(zhí)行,main函數(shù)后面的一對圓括號不能省略。
具體形式如下:
main()
{ ? }
被大括號{ }括起來的內(nèi)容稱為main函數(shù)的函數(shù)體,這部分內(nèi)容就是計算機(jī)要執(zhí)行的內(nèi)容。
在{ ?}里面每一句話后面都有一個分號(;),在c語言中,我們把以一個分號結(jié)尾的一句話叫做一個c語言的語句,分號是語句結(jié)束的標(biāo)志。
擴(kuò)展資料:
函數(shù)是一組一起執(zhí)行一個任務(wù)的語句。每個 C 程序都至少有一個函數(shù),即主函數(shù)?main()?,所有簡單的程序都可以定義其他額外的函數(shù)。
您可以把代碼劃分到不同的函數(shù)中。如何劃分代碼到不同的函數(shù)中是由您來決定的,但在邏輯上,劃分通常是根據(jù)每個函數(shù)執(zhí)行一個特定的任務(wù)來進(jìn)行的。
函數(shù)聲明告訴編譯器函數(shù)的名稱、返回類型和參數(shù)。函數(shù)定義提供了函數(shù)的實際主體。
C 標(biāo)準(zhǔn)庫提供了大量的程序可以調(diào)用的內(nèi)置函數(shù)。例如,函數(shù)?strcat()?用來連接兩個字符串,函數(shù)?memcpy()?用來復(fù)制內(nèi)存到另一個位置。
函數(shù)還有很多叫法,比如方法、子例程或程序,等等。
參考資料來源:百度百科-C語言函數(shù)
#includestdio.h
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;
}
擴(kuò)展資料:
字符串相關(guān)函數(shù)應(yīng)用:
1. 連接運(yùn)算 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;
參考資料:
百度百科-字符串
C語言程序主函數(shù)只能有1個。C程序中main()稱之為主函數(shù),是所有程序運(yùn)行的入口。程序執(zhí)行總是從main函數(shù)開始,如果有有其他函數(shù),則完成對其他函數(shù)的調(diào)用后再返回到主函數(shù),最后由main函數(shù)結(jié)束整個程序。在執(zhí)行程序時,由系統(tǒng)調(diào)用main函數(shù)。
擴(kuò)展資料:
主函數(shù)的兩個形參形式中的形參,允許從執(zhí)行環(huán)境中傳遞任意的多字節(jié)字符串,各個指針 argv[1] .. argv[argc-1] 指向每個這些字符串的第一個字符。argv[0] 是指向一個表示用于執(zhí)行該程序自身的名字的空結(jié)尾多字節(jié)字符串(或者當(dāng)執(zhí)行環(huán)境不支持時,為空字符串 "")的開頭字符的指針。
這些字符串是可以改動的,雖然對它們的改動并不會被傳回給執(zhí)行環(huán)境:比如可以用 std::strtok 來使用它們。由 argv 所指向的數(shù)組的大小至少為 argc+1,其最后一個元素 argv[argc] 保證為一個空指針。