C++ Template:
class MyClass
{
public:
getNiCount(...)
{
}
replaceNiWithNI(...)
{
}
};
int main()
{
const char *szTestString1 = "Ni nI NI nI Ni";
const wchar_t *szTestString2 = L"Ni nI NI nI Ni";
// Invoke getNiCount(...) of class MyClass
// Invoke replaceNiWithNI(...) of class MyClass
// Display on screen: "Found X occurrences of Ni. New string: Y"
}
任務描述:編程任務要求
- 實現這兩種功能
getNiCount
和類MyClass
的replaceNiWithNI
:getNiCount
應在szTestString1/2
返回「倪」的出現次數(區分大小寫)replaceNiWithNI
應將szTestString1/2
中所有出現的「Ni」替換爲「NI」(區分大小寫)
- 調用
getNiCount
和replaceNiWithNI
這兩個函數。 - 顯示屏幕上最後評論中給出的字符串。應該用實際值替換
X
和Y
。 - 類
MyClass
應該能夠處理szTestString1
(ASCII)和szTestString2
(Unicode)。
一般要求:
的代碼應該是
- 易於理解和維護(優先級1)
- 技術上優雅(優先級2)
- 爲(CPU)高效爲可能(優先級3)
你是人類低於使用基於C++語言的所有技術,工具包和框架。
我的解決方案(不完全)
的邏輯是以下... 然而,在我的系統函數2「取代」崩潰。無法修復它。
#include<iostream>
#include<string>
using namespace std;
class MyClass
{
public:
void getNiCount(const char*,const wchar_t*);
//cout<<"\nCount is :"<<count;
void replaceNiWithNI(const char*,const wchar_t*);
};
void MyClass::getNiCount(const char* x,const wchar_t* y)
{
int count=0;
int ycount=0;
for(int i=0; x[i]!='\0';i++)
{
if(x[i]=='N')
{ if(x[i+1]=='i')
count++;
}
}
for(int i=0; y[i]!='\0';i++)
{
if(y[i]=='N')
{ if(y[i+1]=='i')
ycount++;
}
}
cout<<"\nFound "<<count<<" occurences of Ni in String 1";
cout<<"\nFound "<<ycount<<" occurences of Ni in String 2";
}
void MyClass:: replaceNiWithNI(const char* x,const wchar_t* y)
{ char* a;
wchar_t* b;
strcpy(a,x);
for (int i=0;a[i]!='\0';i++)
{
if (a[i]=='N')
{ if(a[i+1]=='i')
{
a[i+1]='I';
}
}
}
for (int i=0;y[i]!='\0';i++)
{
b[i]=y[i];
}
for (int i=0;b[i]!='\0';i++)
{
if (b[i]=='N')
{ if(b[i+1]=='i')
{
b[i+1]='I';
}
}
}
cout<<"\nNew String 1 is :";
puts(a);
cout<<"\nNew String 2 is :";<<b
}
int main()
{
const char *szTestString1 = "Ni nI NI nI Ni";
const wchar_t *szTestString2 = L"Ni nI NI nI Ni";
MyClass ob1;
ob1.getNiCount(szTestString1,szTestString2);
ob1.replaceNiWithNI(szTestString1,szTestString2);
getchar();
return 0;
}
這是你的功課,不是我們的。你嘗試了什麼? – amit 2012-08-19 10:58:34
不,它是一個運動。 – user1609824 2012-08-19 11:13:44
爲誰練習?你的問題到底是什麼? – amit 2012-08-19 11:14:42