0728作业

1、

#include <stdio.h>
int num(char *a);
/*
1.编写一个函数,需要一个指向字符串的指针变量作为参数,并
返回字符串的长度。main函数调用进行测试。
*/

int main()
{
//	char *p;
	int n=0;
//	char *a[5]={"i","hate","boss","bell","battle"};
	char a[100]={0};
	printf("请输入字符串:");
	gets(a); 
//	p=a;
	n=num(a);
	printf("该字符串%s的长度为%d",a,n);
//	printf("%#x\n",p);
//	p=a[5];
//	printf("%#x\n",p);
	
	return 0;
}

int num(char *a)
{
	int n=0;
	for( ;*a!='\0';a++)
	{
		n++;
	}
	return n;
	//char *c=a+6;
//	printf("%#p %#p",c,a);
//	printf("%x",c-*a);
}

2、

#include <stdio.h>
/*
2、设计一个函数,其参数为一个字符串指针,并且返回一个指针,该指针指向
字符串中所指位置后(包括该位置)的第一个空格字符,如果找不到空格字符,
就返回空指针
*/

int main()
{
	
	return 0;
}

3、

#include <stdio.h>
/*
3、编写一个程序,要求连续输入n个不重复的字母,利用指针引用方式按照字母表进行排序。
*/

int main()
{
	char a[5]={0};
	printf("请输入5个不重复的字母:");
	gets(a); 
	char *p=&a;
	int i,j;
	char ch;
	for(i=0;i<5;i++)
	{
		
		for(j=0;j<4-i;j++)
		{
		//	printf("%c\n",*p);
			if(*(p+j)>*(p+1+j))
			{
				ch=*(p+j);
				printf("log:ch=%c\n",ch);
				*(p+j)=*(p+1+j);
				*(p+1+j)=ch;
				
			}
			
		}
	}
	puts(a);
	return 0;
}

4、

#include <stdio.h>
/*
4\输入一个字符串,内有数字和非数字字符,例如:
A123x456 17960? 302tab5876
将其中连续的数字作为一个整数,依次存放到一数组a中。
例如,123放在a[0],456放在a[1] ......,统计共有多少个整数,并输出这些数。
*/

int main()
{
	char arr[50],num[10][10]={0};//创建数组放字符串   二维数组放连续数字 
	printf("请输入字符串:");
	fgets(arr,50,stdin);//赋值 
	char *ch;
	ch=arr;
	int i=0,n=0,p=0,q=0;
	
	while(*(arr+i)!='\0')
	{
		if(*(arr+i)>47&&*(arr+i)<58)//判断字符 
		{
			n++;//字符是数字++ 
			num[p][q]=*(arr+i);//放入二维数组 
			q++;//每放入一个列++ 
		}
		else
		{
			if(q==1)//数字不连续  不符合题意  舍去 
			{
				q==0;
				num[p][0]=0;
			}
			if(q!=0)//列加了  中间出现字母就换行  列初始化 
			{
				p++;
				q=0;
			}
		}
		i++;//字符串数组++ 
	}
//	printf("共有%d个整数\n",n);
	for(p=0;num[p][0]!=0;p++)
	{
		for(q=0;q<10;q++)
		{
			if(num[p][q]!=0)
				printf("%c",num[p][q]);//%d需要-48   %c不需要 
		}
		printf("\n");
	}
	printf("共有%d个整数\n",p);
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值