部分函数及其实现流程图

  1. 删除字符串中的非大小写字母元素
void deleteother(char str[])
{
	char* p1, * p2;
	p1 = str;
	p2 = str;
	while (*p2 != '\0')
	{
		if (*p2 >= 'A' && *p2 <= 'Z' || *p2 >= 'a' && *p2 <= 'z')
		{
			*p1 = *p2;
			p1++;
		}
		p2++;
	}
	*p1 = '\0';
	str = p1;
}

在这里插入图片描述

  1. 字符串排序函数
void sortP_Str(char* pstr[])
{
	int i, j;
	char tmp[81];
	
	for (j = 1; j < 5; j++)
	{
		for (i = 0; i < 5 - j; i++)
		{
			if (strcmp(pstr[i], pstr[i + 1]) > 0)
			{
				/*这里采用拷贝字符串来实现交换位置的操作*/
				strcpy(tmp, pstr[i]);
				strcpy(pstr[i], pstr[i + 1]);
				strcpy(pstr[i + 1], tmp);
			}
		}
	}
}

在这里插入图片描述

  1. 从字符串中将单词分离出来
//输出用空格分隔开的单词
int printWord(char* str, char** Pstr)
{
	int count = 0, flag = 0;

	//利用指针数组记录单词的起始位置,把字符串中单词结束后的空格改为'\0'
	while (*str != '\0')
	{
		if (*str == ' ')
		{
			if (flag != 0)
			{
				*str = 0;
				flag = 0;
			}
		}
		else if (flag == 0)   //flag=0代表的是当前读取的是字母
		{
			flag = 1;
			*(Pstr + count) = str;
			count++;
		}
		str++;
	}

	return count;
}

在这里插入图片描述

4. 任意数据的进制转换

//进制转换函数
void  transNum(int m, int n)
{
	int num[20] = { 0 }, i, j;

	for (i = 0; m; i++)
	{
		num[i] = m % n;
		m /= n;
	}

	printf("对于的%d进制转换数据为-->", n);
	for (j = i - 1; j >= 0; j--)
	{
		printf("%d", num[j]);
	}
	printf("\n");
}

5. 数组的转置

//转置矩阵
void transArray(int arr[][N], int m, int n)
{
	int i, j, temp;

	for (i = 0; i < n; i++)
	{
		for (j = 0; j < i; j++)		//注意这里应该是j<i才正确
		{
			temp = arr[i][j];
			arr[i][j] = arr[j][i];
			arr[j][i] = temp;
		}
	}
}

在这里插入图片描述

6.移动数组的后m个数变为前m个数

//移动后m个数变为前m个数
/*
	先将后m个数进行移动,
	再依次向后移动没有变换的数据,
	最后再让前面空出来的m个位置依次填入后m个数
*/
void moveDeal(int* num, int n, int m)
{
	int i, j, * p, count = 0;

	//为要进行移动的m个数开辟空间
	p = (int *)malloc(m * sizeof(int));		

	//直接将后m个数变成前m个数,相应位置数据对换,改变指针的指向
	for (i = n - m, j = 0; i <= n - 1; i++, j++)	//注意等号
	{
		*(p + j) = *(num + i);
	}

	//向后移动没被纳入移动范围的数据
	for (i = n - 1 - m, j = n - 1; i >= 0; i--, j--)
	{
		//让空出的最后一个位置接纳开始移动的前一个数据
		*(num + j) = *(num + i);
	}

	//让原数组的指针指向移动的新数据指针处
	for (i = 0; i < m; i++)
	{
		*(num + i) = *(p + i);
	}
	free(p);
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是快卡黎嫩哦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值