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;
}