控制台打开c++程序并且模拟注册程序,并打印,无string,char模拟string函数处理字符串

在这里插入图片描述

#include <iostream>
#include <string>

struct ZhanghaoInfo
{
	char* id;
	char* pass;
	char* country;
};

bool Help(const char* str) 
{
	if (str == "/?")
	{
		std::cout << "123";
		return true;
	}
	return false;
}

int GetIndex(const char* str,const char* find) 
{
	for (int i = 0; str[i]!='\0'; i++)
	{
		if (str[i] == find[0])
		{
			bool isOk{ true };
			int x{0};
			for (x; find[x]!='\0' ; x++)
			{
				if (str[x+i] != find[x])
				{
					isOk = false;
					break;
				}
			}
			if (isOk)
			{
				return x;
			}
		}
	}
	return -1;
}

char* SubString(const char* cstr,int index,int length = 0) 
{
	if (length==0)
	{
		return (char*)&cstr[index];
	}
	else
	{
		char* str = new char[length];
		for (int i = index; i < length; i++)
		{
			str[i] = cstr[i];
		}
		return str;
	}
}

int main(int count, char* c_arg[])
{
	ZhanghaoInfo zhanghao{ nullptr,nullptr ,nullptr };
	if(!Help(c_arg[1]))
	{
		for (int i = 1; i<4; i++)
		{
			int index;
			if (zhanghao.id==nullptr)
			{
				index = GetIndex(c_arg[i], "id:");
				if (index != -1)
				{
					zhanghao.id = SubString(c_arg[i], index);
				}
			}
			if (zhanghao.pass == nullptr)
			{
				index = GetIndex(c_arg[i], "pass:");
				if (index != -1)
				{
					zhanghao.pass = SubString(c_arg[i], index);
				}
			}
			if (zhanghao.country == nullptr)
			{
				index = GetIndex(c_arg[i], "country:");
				if (index != -1)
				{
					zhanghao.country = SubString(c_arg[i], index);
				}
			}
		}
		if (zhanghao.id==nullptr|| zhanghao.pass == nullptr|| zhanghao.country == nullptr)
		{
			std::cout << "输入有误,请重新输入正确格式";
			return 0;
		}
		std::cout << "注册成功!\n";
		std::cout << "账号:" << zhanghao.id<<" "<< "密码:" << zhanghao.pass<< " " << "国家:" << zhanghao.country<<" ";//输出char*会输出字符串而不是指针地址
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值