用指针编程,从键盘上输入多个字符串(每个串不超过5个字符且没有空格),用”*****”作为输入结束的标记。从所输入的若干字符串中,找出一个最大的串(按字典序),并输出该串。要求串的输入以及最大串的查找通过调用编写的函数实现。输出行末无多余空格
样例输入
abcd
bcde
asdb
sdaf
*****
样例输出
sdaf
#include<stdio.h>
#include<string.h>void c(char *p,char *p1);
void main()
{
char a[6] = {'\0'};
char b[6] = {'\0'};
char *p,*p1;
p = a;
p1 = b;
c(p,p1);
puts(p1);
}void c(char *p,char *p1)
{
char m[6];
while(strcmp(p,"*****")!=0){
if(strcmp(p,p1)<0){
strcpy(p,p1);
}
strcpy(p1,p);
gets(m);
p = m;
}
}
输入一个长度不大于30的字符串,将此字符串中从第m个字符开始的剩余全部字符复制成为另一个字符串,并将这个新字符串输出。要求用指针方法处理字符串。输出行末无多余空格
样例输入
asdjkflj
4
样例输出
jkflj
#include<stdio.h>
void main()
{
char *p,*q,a[30],b[30];
int i = 0,m,n;
gets(a);
scanf("%d",&m);
p = a;
q = b;
n = m-1;
while(p[i]!=0){
q[i] = p[n];
i++; n++;
}
printf("%s\n",q);}
编写一函数,求一个字符串的长度,要求用字符指针实现。在主函数中输入字符串,调用该函数输出其长度。输出行末无多余空格
样例输入
abcdefg
样例输出
7
#include<stdio.h>
int m(char *p);
void main()
{
int i = 0,k = 0;
char *p,a[100];
p = a;
gets(a);
m(p);
printf("%d",m(p));}
int m(char *p)
{
int i = 0;
while(*p++ != '\0'){
i++;
}
return i;
}
请编写一个函数,函数参数为指针类型,功能为翻转一个字符串。即将“abcd”翻转为“dcba”.
样例输入
ytisrevinUuzG
样例输出
#include<stdio.h>
#include<string.h>char s(char *p);
void main()
{
char *p,a[100];
int i;
gets(a);
p = a;
s(p);
}
char s(char *p)
{
int i,n;
char t;
n = strlen(p);
for(i = 0;i < n/2; i++){
t = p[i];
p[i] = p[n-1-i];
p[n-1-i] = t;
}
puts(p);
}
在很久很久以前,有一群神秘的字符串,每当月圆之时,他们都会冒出一句奇怪的维题。猜猜我多长?编写一个函数,函数的参数为字符串类型,功能为求字符串的长度(不允许使用strlen函数)。在主函数中输入字符串,调用函数求字符串的长度并输出。
样例输入
Welcome to Nnuo
样例输出
15
#include<stdio.h>
void main()
{
int i = 0,k = 0;
char *p,a[100];
p = a;
gets(a);
while(*p++ != '\0'){
i++;
}
printf("%d",i);}
输入一个含10个元素的整型数组,请通过指针变量输出这个数组
输入:2 4 52 13 45 3 4 8 10 6
输出:2 4 52 13 45 3 4 8 10 6
样例输入
2 4 52 13 45 3 4 8 10 6
样例输出
2 4 52 13 45 3 4 8 10 6
#include<stdio.h>
void main()
{
int a[10],i;
for(i = 0;i < 10; i++)
scanf("%d",&a[i]);
int *p;
p = a;
for(i = 0;i < 10; i++){
printf("%d ",*p);
p++;
}
}
在很久很久以前,有一群神秘的字符串,每当月圆之时,他们都会冒出一句奇怪的话:"给我也整一个"。输入一个字符串a,将字符串a复制给字符串b,并输出字符串b。要求用指针的进行赋值操作。
样例输入
ICPC team of Guizhou University
样例输出
ICPC team of Guizhou University
#include<stdio.h>
void main()
{
char a[100],b[100];
char *p,*q;
gets(a);
p = a;q = b;
for(;*p !='\0'; p++,q++)
*q = *p;
*q = '\0';
puts(b);
}
输入两个数,编写一个程序,调用一个函数,该函数交换两个数的值并输出。要求用指针作为函数的参数。
#include<stdio.h>
void s(int *p,int *q);
void main()
{
int a,b;
int *p,*q;
scanf("%d %d",&a,&b);
p = &a;
q = &b;
s(p,q);
printf("%d %d",a,b);
}void s(int *p,int *q)
{
int t;
t = *p;
*p = *q;
*q = t;
}