刚写了个反转字符串的程序,我这算不算指针入门了?
  • 板块灌水区
  • 楼主woaiCgaga
  • 当前回复16
  • 已保存回复17
  • 发布时间2024/10/24 13:46
  • 上次更新2024/10/24 16:13:20
查看原帖
刚写了个反转字符串的程序,我这算不算指针入门了?
1425439
woaiCgaga楼主2024/10/24 13:46
#include<iostream>
#include<cstdlib>
#include<cstring>

using namespace std;

void fanzhuan1(char* str1, int numb)   //定义无返回值函数fanzhuan1,用来反转字符串;
{
	for (int i = 0; i < numb / 2; i++)
	{
		char temp = str1[0 + i];
		str1[0 + i] = str1[numb - 1-i];
		str1[numb - 1-i] = temp;
	}
}

int a = 0;                             //定义用来遍历字符串后保存输入字符数;                

int main()
{
	char* str = (char*)malloc(256);    //定义str指向的内存地址存储输入的字符串;
	if (str == NULL)                   //如果输入溢出return 0结束;
	{
		cout << "!!!" << endl;
		return 0;
	}                                  //没有溢出继续运行;
	cin.getline(str,256);              //输入字符串,保存至str所指向的内存地址;
	while (str[a] != '\0')             //遍历str,确认输入了多少个字符;
	{
		a++;
	}
	fanzhuan1(str ,a);                  //字符串整体反转;
	int start = 0;
	for (int i=0;i<a;i++)               //字符串内单词反转;
	{
		if(str[i] == ' ')
		{
			fanzhuan1(str+start, i-start);
			start=i+1;
		}
	}
	if (start < a)                       //判断是否全部反转;
	{
		fanzhuan1(str + start, a - start);  //反转最后一位;
	}
	cout<<a<<endl <<str << endl;         //打印字符数&反转后的全部字符串;
	free(str);                           //释放内存防止泄露;
	return 0;                            
}                                        //end;

大神们帮忙看看那还能改改 还有我这野生程序有没有什么需要注意的!

2024/10/24 13:46
加载中...