這是一個返回反轉字符串的代碼,例如「ABC」返回「CBA」,但它返回此「CBA =」「」「」「」「」「」*「。 有什麼不對?此反轉字符串代碼(C)有什麼問題
char* inv(char* C)
{
int lenght = strLenght(C)-1;
int idx=0;
char* tempStr = (char*)malloc(lenght+2);
for (;lenght>=0;lenght--,idx++)
{
tempStr[idx] = C[lenght];
}
return tempStr;
}
int strLenght(char* str)
{
int lenght=0;
while(str[lenght] != '\0')
lenght++;
return lenght;
}
int main(int argc, char *argv[])
{
char* st= "ABC";
char* sr = inv(st);
printf("%s",sr);
}
我剛剛在'MinGW'上試過了你的程序,它工作的很好,即我觀察'CBA'作爲輸出。 – Ganesh 2013-03-23 16:26:24
@Ganesh你很幸運,並且在內存中的字符串旁邊有一個''\ 0''。 – 2013-03-23 16:27:14
謝謝你,應該在回答這個問題上發帖,我現在覺得很愚蠢。 – 2013-03-23 16:27:21