我在Ubuntu中使用GCC用ANSI C编写了一个小应用程序。在我的一个文件中,我有以下功能:
void Decipher(char *pCipherText, char *pLetter, char *pReplacement) {
for (; *pCipherText != '\0'; pCipherText++) {
if (*pCipherText == *pLetter) {
SortChar(pCipherText, pReplacement);
}
}
}
SortChar()的函数:
void SortChar(char *pChA, char *pChB) {
char tempCh; /*temp variable*/
tempCh = *pChA; /*store old value before it is overwritten*/
*pChA = *pChB; /*overwrite old value*/
*pChB = tempCh; /*complete the swap*/
}
pCipherText是一个指向字符数组的指针,pLetter是一个指向字符的指针,pReplacement是一个指向字符的指针。我希望函数使用指针pCipherText遍历整个数组,并用pReplacement的值替换数组中每次出现的pLetter值。现在,该函数只替换pCipherText中pLetter的第一个实例。
我该如何修改功能,以取代所有发生的褶皱与前置?谢谢。
最佳答案
你应该替换
SortChar(pCipherText, pReplacement);
具有
*pCipherText = *pReplacement;
您的
SortChar()
将交换它的参数,我相信它的名称是错误的。关于c - 我将如何获得一个函数来替换数组中char的所有实例?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22213044/