1.用指针封装strcpy
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
char arr[30] = "";
char brr[30] = "";
printf("请输入第一个字符>>");
gets(arr);
printf("请输入第二个字符>>");
gets(brr);
char *p1 = arr;
char *p2 = brr;
while(*p2 != '\0')
{
*p1 = *p2;
*p1++;
*p2++;
}
*p1 = *p2;
printf("把第二个字符赋值给第一个字符,结果为:");
puts(arr);
return 0;
}
2.用指针封装strcmp
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
char arr[30] = "";
char brr[30] = "";
printf("请输入字符串a>>");
gets(arr);
printf("请输入字符串b>>");
gets(brr);
char *p1 = arr;
char *p2 = brr;
int flag = 0;
while(*p1 != '\0' && *p2 !='\0')
{
if(*p1 > *p2)
{
flag = 1;
break;
}
else if(*p1 < *p2)
{
flag = -1;
break;
}
else
{
flag = 0;
}
*p1++;
*p2++;
}
printf("比较的结果为:%d\n",flag);
return 0;
}
3.用指针封装strcat
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
char arr[30] = "";
char brr[30] = "";
printf("请输入字符串a>>");
gets(arr);
printf("请输入字符串b>>");
gets(brr);
char *p1 = arr;
char *p2 = brr;
int len = strlen(arr);
while(*p1 != '\0')
{
*(p1+len) = *p2;
*p1++;
*p2++;
}
puts(arr);
return 0;
}
4.在终端输入一串字符,统计空格的个数(用指针方法)
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
char arr[30] = "";
printf("请输入字符串a>>");
gets(arr);
char *p = arr;
int count = 0;
while(*p != '\0')
{
if(*p == ' ')
{
count++;
}
*p++;
}
printf("这个字符串a里的空格有%d个\n",count);
return 0;
}
5. 冒泡排序(用指针方法实现)
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[]) {
char arr[30] = "";
printf("请输入你需要排序的数据>>");
gets(arr);
char *p = arr;
int i = 0, j = 0;
int len = strlen(arr);
for (i = 0; i < len; i++) {
for (j = 0; j < len - 1 - i; j++)
{
if (*(p + j) > *(p + j + 1))
{
*(p+j) = *(p+j+1) ^ *(p+j);
*(p+j+1) = *(p+j+1) ^ *(p+j);
*(p+j) = *(p+j+1) ^ *(p+j);
}
}
}
puts(arr);
return 0;
}