vc++相关问题以及源代码……定义字符串类String……
谢谢了……
如下:
#include <iostream>
using namespace std;
class String
{
private:
char* str1;
char* str2;
char* str; //str为str1和str2之和
public:
String(const char* p1,const char* p2)
{
int len1 = 0, len2 = 0;
int i = 0;
//计算长度
while (p1[len1] != '\0')
len1++;
while (p2[len2] != '\0')
len2++;
//申请内存空间
str1 = new char[len1 + 1];
str2 = new char[len2 + 1];
str = new char[len1 + len2 + 1];
while (p1[i] != '\0')
{
str1[i] = p1[i];
str[i] = p1[i];
i++;
}
str1[i] = 0; //结尾
while (p2[i - len1] != '\0')
{
str2[i - len1] = p2[i - len1];
str[i] = p2[i - len1];
i++;
}
str2[i - len1] = 0;
str[i] = 0;
}
void dele()//删除str中的空格字符
{
int i = 0, j = 0;
while (str[i] != '\0')
{
if(str[i] !=' ')
str[j++] = str[i];
i++;
}
str[j] = '\0';
}
void sort() //升序排序
{
int i, j, temp;
for (i = 1; str[i] != '\0'; i++)
{
if (str[i] < str[i - 1])
{
temp = str[i];
for (j = i - 1; j >= 0; j--)
{
if (str[j] > temp)
str[j + 1] = str[j];
else
break;
}
str[j + 1] = temp;
}
}
}
void show() //输出所有成员
{
cout << "str1=" << str1 << endl;
cout << "str2=" << str2 << endl;
cout << "str=" << str << endl;
}
};
int main()
{
const char* p1 = "db a";
const char* p2 = "4 1";
String s(p1, p2);
cout << "删除空格和排序后的字符串:" << endl;
s.show(); //
s.dele();
s.sort();
cout << "删除空格和排序后的字符串:" << endl;
s.show();
return 0;
}
string delete(string str)) {
int index = 0;
if (!str.empty()) {
//string::npos 表示查找没有匹配
while((index = str.find(' ', index)) != string::npos) {
str.erase(index, 1);
}
}
return str;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!