C如何比較兩個(gè)字符 那位知道用函數(shù)調(diào)用方式,實(shí)現(xiàn)字符串的復(fù)制啊?
那位知道用函數(shù)調(diào)用方式,實(shí)現(xiàn)字符串的復(fù)制???#Includevoid copy(char S1[,char S2[void main(){int ichar A1[100],A2[100]printf
那位知道用函數(shù)調(diào)用方式,實(shí)現(xiàn)字符串的復(fù)制啊?
#Include
void copy(char S1[,char S2[
void main()
{
int i
char A1[100],A2[100
]printf(“please input string A2:n”)
get(A2)
copy(A1,A2)//A2 copy to A1
printf(“A1:sNa2:sn”,A1,A2)
!void copy(char S1[,字符S2[
]{
int i
]表示(i=0s2[i]!=“0”I)
S1[I]=S2[I
]S1[I]=S2[I]//注意這個(gè)步驟不是多余的,它是將S2的“0”復(fù)制到S1
}
最近參加了幾場(chǎng)C語(yǔ)言筆試題:經(jīng)常要求不使用庫(kù)函數(shù)來(lái)實(shí)現(xiàn)字符串處理這樣的問(wèn)題,請(qǐng)問(wèn)這是什么意思呢。是不?
沒(méi)有庫(kù)函數(shù),這意味著不要使用與字符串處理相關(guān)的庫(kù)函數(shù),例如字符串復(fù)制。這個(gè)函數(shù)可以直接用庫(kù)函數(shù)strcpy實(shí)現(xiàn),任何人都可以直接使用strcpy。。。還有什么可以書(shū)面測(cè)試的?這意味著您應(yīng)該編寫(xiě)一個(gè)函數(shù)來(lái)實(shí)現(xiàn)與strcpy相同的函數(shù)。
Printf和scanf僅用于輸入和輸出,但它們似乎不用于筆試。一般來(lái)說(shuō),只需要編寫(xiě)與需要實(shí)現(xiàn)的函數(shù)相對(duì)應(yīng)的函數(shù)(至少我只經(jīng)歷過(guò)這種情況),不需要編寫(xiě)完整的可執(zhí)行測(cè)試代碼。
如果需要輸入和輸出,可以使用printf和scanf。
編一個(gè)函數(shù),實(shí)現(xiàn)兩個(gè)字符串的復(fù)制。并在主函數(shù)中調(diào)用它?
#包含“stdio。H “
#包含”標(biāo)準(zhǔn)庫(kù)。H“
int stringcopy(char*STR1,char*STR2)
main()
{
char STR1[40],STR2[20
]printf(”輸入第一個(gè)字符串“
scanf(%s”,STR1)
printf(”輸入第二個(gè)字符串“
]scanf(%s”,STR2)
stringcopy(STR1,STR2)
getchar()getchar()
return 0
}]int stringcopy(char*STR1,char)*STR2)
{
int i=0,j=0
do
{
}while(*(STR1 i)!=“0”
執(zhí)行
{
*(STR1 I)=*(STR2 J)
I J
}而(*(STR2 J-1)!=“0”&;MPI
如果(I>=40)
printf(“對(duì)不起,沒(méi)有足夠的空間復(fù)制!“)
else
{
printf(%sn”,STR1)
}
return 0
}
用C語(yǔ)言實(shí)現(xiàn)字符串拷貝函數(shù)有幾種方式?
例如,下面的代碼中有另一個(gè)函數(shù)memcpy,它是內(nèi)存副本,原型則是指針引用。請(qǐng)注意,這不是一個(gè)賦值,而是一個(gè)引用。這個(gè)操作需要注意內(nèi)存。第三種方法是直接賦值