我程序和我想要寫一個函數,它有兩個串和一個特定的位置(開始&端),並從開始替換的字符的結束第一個字符串與第二個字符串。所以聲明是這樣的:void replace(char str1[], char str2[], int from, int to);
。C,插入在一個字符串的字符串在C替換
之所以說它是有點問題的,因爲有時你要插入的字符串比(從 - 到)位置更大,有時是小,因此它並不總是適合完美的。我想到了條件,如if(strlen(str2) > to-from)
和else if(strlen(str2) < to-from)
或正式正規循環,這將是由其他人(因爲它是唯一剩下的選項...)。
你有任何想法應該循環包含哪些內容?
編輯: 我知道了,但有一件事不工作。如果我想插入第一個字符串的字符串小於from和to之間的可能字符串(意思是我需要抹去字符打擾),那麼它不起作用。 被激活,當我要插入的字符串比可能的空間較小的聲明是這樣的:
if(strlen(str2) < to-from+1)
{
location = from+strlen(str2)+1;
j = 0;
for (i = from ; i < to && j < strlen(str2) ; i++)
{
str1[i] = str2[j];
j++;
}
for(i = location ; i <= to ; i++)
{
for(j = i ; j <= strlen(str1) ; j++)
{
str1[j] = str1[j+1];
}
}
}
請正確格式化您的代碼。 – OldProgrammer
試試'strncpy'? – cdarke