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ù)制?。?/h2>
#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
}
最近參加了幾場C語言筆試題:經(jīng)常要求不使用庫函數(shù)來實(shí)現(xiàn)字符串處理這樣的問題,請問這是什么意思呢。是不?
沒有庫函數(shù),這意味著不要使用與字符串處理相關(guān)的庫函數(shù),例如字符串復(fù)制。這個(gè)函數(shù)可以直接用庫函數(shù)strcpy實(shí)現(xiàn),任何人都可以直接使用strcpy。。。還有什么可以書面測試的?這意味著您應(yīng)該編寫一個(gè)函數(shù)來實(shí)現(xiàn)與strcpy相同的函數(shù)。
Printf和scanf僅用于輸入和輸出,但它們似乎不用于筆試。一般來說,只需要編寫與需要實(shí)現(xiàn)的函數(shù)相對應(yīng)的函數(shù)(至少我只經(jīng)歷過這種情況),不需要編寫完整的可執(zhí)行測試代碼。
如果需要輸入和輸出,可以使用printf和scanf。
編一個(gè)函數(shù),實(shí)現(xiàn)兩個(gè)字符串的復(fù)制。并在主函數(shù)中調(diào)用它?
#包含“stdio。H “
#包含”標(biāo)準(zhǔn)庫。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(“對不起,沒有足夠的空間復(fù)制!“)
else
{
printf(%sn”,STR1)
}
return 0
}
用C語言實(shí)現(xiàn)字符串拷貝函數(shù)有幾種方式?
例如,下面的代碼中有另一個(gè)函數(shù)memcpy,它是內(nèi)存副本,原型則是指針引用。請注意,這不是一個(gè)賦值,而是一個(gè)引用。這個(gè)操作需要注意內(nèi)存。第三種方法是直接賦值