1.用指针封装 strcpy strcmp strcat
strcpy:
#include<stdio.h>
#include<string.h>
int main(int argc,const char *argv[])
{
char arr[30]="",brr[30]="";
char *pa = arr,*pb = brr;
int i=0,len1=0,len2=0;
printf("请输入字符串>>");
gets(arr);
printf("请输入字符串>>");
gets(brr);
len1=strlen(arr);
len2=strlen(brr);
for(i=0;i<len2;i++)
{
*(pa+i)=*(pb+i);
}
*(pa+len2)='\0';
puts(arr);
return 0;
}
strcmp:
#include<stdio.h>
#include<string.h>
int main(int argc,const char *argv[])
{
char arr[30]="",brr[30]="";
char *pa = arr,*pb = brr;
int i=0,len1=0,len2=0,len=0,n=0;
printf("请输入字符串>>");
gets(arr);
printf("请输入字符串>>");
gets(brr);
len1=strlen(arr);
len2=strlen(brr);
len=len2;
if(len1>len2)
{
len=len1;
}
for(i=0;i<len;i++)
{
if(*(pa+i)==*(pb+i))
{
continue;
}
else
{
printf("%d\n",*(pa+i)-*(pb+i));
n=1;
break;
}
}
if(n==0)
{
printf("%d\n",n);
}
printf("%d\n",strcmp(arr,brr)); //验证
return 0;
}
strcat:
#include<stdio.h>
#include<string.h>
int main(int argc,const char *argv[])
{
char arr[30]="",brr[30]="";
char *pa = arr,*pb = brr;
int i=0,len1=0,len2=0;
printf("请输入字符串>>");
gets(arr);
printf("请输入字符串>>");
gets(brr);
len1=strlen(arr);
len2=strlen(brr);
for(i=0;i<len2;i++)
{
*(pa+len1+i)=*(pb+i);
}
*(pa+len1+len2)='\0';
puts(arr);
return 0;
}
2.从终端中输入一串字符,求出空格的个数;指针
代码:
#include<stdio.h>
#include<string.h>
int main(int argc,const char *argv[])
{
char arr[30]="";
char *p = arr;
int len=0,i=0,n=0;
printf("请输入字符串>>");
gets(arr);
len=strlen(arr);
for(i=0;i<len;i++)
{
if(*(p+i)==' ')
{
n++;
}
}
printf("空格的个数为%d个\n",n);
return 0;
}
3.冒泡排序--->指针
代码:
#include<stdio.h>
#include<string.h>
int main(int argc,const char *argv[])
{
int arr[6]={34,23,78,56,99,1};
int *p=arr,i=0,j=0,t=0;
for(i=0;i<6-1;i++)
{
for(j=i+1;j<6;j++)
{
if(*(p+i)>*(p+j))
{
t=*(p+i);
*(p+i)=*(p+j);
*(p+j)=t;
}
}
}
for(i=0;i<6;i++)
{
printf("%d ",*(p+i));
}
putchar(10);
return 0;
}