1. 用指针的方式实现某数字字符串是否是回文
#include<stdio.h>
#include<string.h>
int huiwen(char *str)
{
int flag=1,len = strlen(str);
char *pstart=str,*pend;
pend=pstart+len-1;
while(pstart<pend)
{
if(*pstart!=*pend)
{
flag=0;
return flag;
}
pstart++;
pend--;
}
return flag;//判断回文函数
}
void main()
{
char str[255];
int a;
printf("请输入一个字符串:\n");
scanf("%s",str);
a=huiwen(str);
if(a==1){
printf("该字符串是回文");
}
else{
printf("该字符串不是回文");}
}
2. 用指针方式实现从键盘输入5个整数存入一个数组。用指针的方法实现从中查找某个整数,找到时输出该数所在的下标。
#include <stdio.h>
int main()
{
int a[5],i,t=0;//t为需输出下标
printf("输入5个整数:");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
int *p;
p=a;
int b,num;
printf("要寻找的整数:");
scanf("%d",&b);
for(num=0;num<5;num++)
{
if (p[num]==b)
{t=num;
}
}
printf("需寻找数的下标为%d",t);
}
3.输入N*N的矩阵,输出它的转置矩阵
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,m,j;
scanf("%d",&m);
int **p=(int **)malloc(sizeof(int *)*m);
for(i=0;i<m;i++){
p[i]=(int *)malloc(sizeof(int)*m);
p[j]=(int *)malloc(sizeof(int)*m);
}
for(i=0;i<m;i++)
{
for(j=0;j<m;j++){
scanf("%d",&p[i][j]);
}
}
for(j=0;j<m;j++){
for(i=0;i<m;i++){
printf("%d ",p[i][j]);
}
printf("\n");
}
}
4.读入一些字符串,将其中的空格去掉
#include<stdio.h>
#include<string.h>
void zifuqianyi(char *ch)
{
char *c;//指向字符串的字符处
while (*ch != ' ')
{
ch++;
}//将ch指针指向第一个空格位置
c = ch + 1; //让c指针指向出现空格后的第一个字符串
while (*c== ' ')
{
c++;
}
while (*c != '\0')
{
if (*c != ' ')
{
*ch = *c;
*c = ' '; //字符与空格互换
ch++;
}
c++;
}
*ch = '\0';
return;
}
int main()
{
char ch[80];
gets(ch);
zifuqianyi(ch);
printf(" %s\n", ch);
return 0;
}