如果c沒有出現在s中,則返回一個指向c出現在s和nullptr(0)中的c 的最後一次出現的指針。返回一個指向C風格字符串中字符最後出現的指針(C++)
#include <string>
#include <iostream>
#include <cassert>
using namespace std;
const char* myStrRChr(const char* s, char c)
{
int curIdx = 0;
char last;
while (s[curIdx] != '\0')
{
if (s[curIdx] == c)
last = s[curIdx];
curIdx++;
}
if (s[curIdx] == c)
return last;
else
// return '\0', nullptr, NULL
return "";
}
int main()
{
char cstr[50] = "Abadabadoo!";
char buf[10];
const char * cat = "cat";
char dog[] = "Labradoodle";
cout << "\nmyStrRChr(cstr, 'a') expects adoo!" << endl;
cout << " -- " << myStrRChr(cstr, 'a') << endl;
return 0;
}
此代碼返回「adabadoo!」。關於如何獲取「char c」的最後一個實例,我無法打包。
你需要一個指針而不是索引? – mkmostafa
你需要找出你做錯了什麼。 –
'while'循環是無限的。你確定這是你正在使用的代碼嗎? – PaulMcKenzie