1.封装strcpy、strcmp、strcat
(1)strcpy
#include<stdio.h>
#include<string.h>
int main(int argc, const char *argv[])
{
//封装 strcpy 将字符串数s2复制给s1
//方法一
/* char s1[30]="0";
char s2[30]="0";
printf("请输入字符串s1:");
gets(s1);
printf("请输入字符串s2:");
gets(s2);
char *p1=s1;
char *p2=s2;
int len1=strlen(s1),len2=strlen(s2);
int i,j;
if(len1<len2)
{
for(i=0;i<len2;i++)
{
*(p1+i)=*(p2+i);
}
}
else
{
for(i=0;i<len2;i++)
{
*(p1+i)=*(p2+i);
}
for(i=len2;*(p1+i)!='\0';i++)
{
*(p1+i)=' ';
}
}
puts(s1);
puts(s2); */
//方法2
char s1[32]="0";
char s2[32]="0";
printf("请输入字符串s1:");
gets(s1);
printf("请输入字符串s1:");
gets(s2);
char *p1=s1;
char *p2=s2;
while(*p2!='\0')
{
*p1=*p2;
p1++;
p2++;
}
*p1=*p2;
puts(s1);
puts(s2);
return 0;
}
(2)strcmp
#include<stdio.h>
#include<string.h>
int main(int argc, const char *argv[])
{
char s1[30]="0";
char s2[30]="0";
printf("请输入字符串s1:");
gets(s1);
printf("请输入字符串s2:");
gets(s2);
int len1=strlen(s1),len2=strlen(s2);
int i,sum=0;
char *p1=s1;
char *p2=s2;
if(len1>len2)
{
for(i=0;i<len1;i++)
{
if(*(p1+i)!=*(p2+i))
{
sum=*(p1+i)-*(p2+i);
break;
}
}
}
else
{
for(i=0;i<len2;i++)
{
if(*(p1+i)!=*(p2+i))
{
sum=*(p1+i)-*(p2+i);
break;
}
}
}
printf("%d\n",sum);
return 0;
}
(3)strcat
#include<stdio.h>
#include<string.h>
int main(int argc, const char *argv[])
{
//封装strcat 将两个字符串拼接到一起;
char s1[30]="0";
char s2[30]="0";
printf("请输入字符串s1:");
gets(s1);
printf("请输入字符串s2:");
gets(s2);
int len1=0;
len1=strlen(s1);
char *p1=s1;
char *p2=s2;
p1+=len1;
while(*p2!='\0')
{
*p1=*p2;
p2++;
p1++;
}
puts(s1);
return 0;
}
2.从终端中输入一串字符,求出空格的个数;(指针)
#include<stdio.h>
#include<string.h>
int main(int argc, const char *argv[])
{
char s[30]=" ";
printf("请输入字符串:");
gets(s);
char *p=s;
int i,count=0;
for(i=0;*(p+i)!='\0';i++)
{
if(*(p+i)==' ')
{
count++;
}
}
printf("字符串的空格个数为%d\n",count);
return 0;
}
3.冒泡排序(指针)