最大字符串
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void find(char *name[],int n,int *p)
{
int i,j,max,len1,len2;
max=0;
for(i=1;i<n;i++)
{
len1=strlen(name[max]);
len2=strlen(name[i]);
if(len2>len1)
max=i;
else if(len1==len2)
{
for(j=0;j<len1;j++)
{
if(name[i][j]>name[max][j])
{
max=i;
break;
}
else if(name[i][j]<name[max][j])
break;
}
}
}
*p=max;
}
int main()
{
void find(char *name[],int n,int *p);
int i,p;
char *name[10],s[6];
i=0;
while(gets(s),strcmp(s,"*****")!=0)
{
name[i]=malloc((strlen(s)+1)*sizeof(char));
strcpy(name[i],s);
i++;
}
find(name,i,&p);
puts(name[p]);
return 0;
}
截断字符串
#include<stdio.h>
#include<string.h>
void my_copy(char *p,char *q,int m,int n)
{
int i;
for(i = m - 1;i < n;i ++)
{
*q = *(p + i);
q++;
}
*q = '\0';
}
int main(int argc, const char *argv[])
{
char str1[30],str2[30];
int m,n ;
gets(str1);
scanf("%d",&m);
n = strlen(str1);
my_copy(str1,str2,m,n);
puts(str2);
return 0;
}
编写一函数,求一个字符串的长度,要求用字符指针实现。在主函数中输入字符串,调用该函数输出其长度。输出行末无多余空格
#include<stdio.h>
int main()
{
char a[50];
gets(a);
char *p=&a[0];
int sum,i;
sum=0;
for(i=0;i<50;i++,p++)
{
if(*p!='\0')
{
sum++;
}
else
{
break;
}
}
printf("%d",sum);
}
请编写一个函数,函数参数为指针类型,功能为翻转一个字符串。即将“abcd”翻转为“dcba”.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void reverse(char* p)
{
int i;
char tmp;
int len = strlen(p);
int haf = len /2;
for (i =0; i< haf; i++)
{
tmp = p[i];
p[i] = p[len -1-i];
p[len -1-i] = tmp;
}
}
int main()
{
char ss[100]={0};
gets(ss);
reverse(ss);
printf("%s\n",ss);
return 0;
}
猜猜我多长
#include<stdio.h>
int qiuchangdu(char *p)
{int sum,i;
sum=0;
for(i=0;i<50;i++,p++)
{
if(*p!='\0')
{
sum++;
}
else
{
break;
}
}
return sum;
}
int main()
{
char a[50];
gets(a);
char *p=&a[0];
printf("%d",qiuchangdu(a));
}
用指针输出数组
#include <stdio.h>
int main()
{
int a[10], *p;
for (p=a, printf(""); p<a+10; scanf("%d", p++));
for (p=a, printf(""); p<a+10; printf("%d ", *p++));
printf("\n");
return 0;
}
字符串滞销,救救码农吧
#include<stdio.h>
void main()
{
char a[100],b[100],*p1=a,*p2=b;
gets(a);
for(;*p1!='\0';p1++)
{
*p2=*p1;
p2++;
}
*p2='\0';
puts(b);
}
交换两个数字
#include "stdio.h"
void fun(int *x,int *y)
{
int t;
t=*x;
*x=*y;
*y=t;
}
void main()
{
int a,b;
scanf("%d%d",&a,&b);
fun(&a,&b);
printf("%d %d\n",a,b);
}