bb平台指针c语言Word文档格式.docx
《bb平台指针c语言Word文档格式.docx》由会员分享,可在线阅读,更多相关《bb平台指针c语言Word文档格式.docx(13页珍藏版)》请在冰点文库上搜索。
4;
i++)
{
min);
intj=strcmp(min,str);
//比较min与str,0:
相等,小于0:
min<
str在那个地址strcmp相当于减法将对应的第一个元素的ASC2码减去第二个ASC2码
if(j<
0)//min若是是小值,将它赋给str参于下次比较
strcpy(str,min);
else//min若是是大值,将小值赋给min
strcpy(min,str);
//那个地址是将main作为变量
}
//strcpy(min,str);
for(i=1;
5;
i++){
str);
if(strcmp(str,min)<
0)
}//那个地址是连番输入连番和min比较大小
printf("
%s\n"
min);
return0;
}
输入一个正整数repeat(0<
repeat<
10),做repeat次以下运算:
编写一个程序,在主函数中输入两个字符串s和t,挪用函数strc完成字符串的连接。
函数strc的作用是将字串s连接到字串t的尾部。
Birthday
Happy
HappyBirthday
voidstrc(char*s,char*t);
chars[80],t[80];
gets(s);
gets(t);
strc(s,t);
puts(t);
voidstrc(char*s,char*t)
while(*t)
t++;
(当t++等于了零的时候停止了循环并将t停止在了等于零的时候)
while(*t++=*s++);
(现执行*t=*s后执行自动相加的任务,而且在s等于领的时候进行停止工作)//因为t已经在尾部了因此直接t++就可
}/*程序填空,不要改变与输入输出有关的语句。
输入5个字符串,输出其中最长的字符串,若是字符串的长度相同,那么输出先输入的字符串。
输入字符串挪用函数scanf("
sx);
2(repeat=2)
liwangzhangjinxian
redbluegreenyellowpurple
Thelongestis:
zhang
yellow
charsx[80],longest[80];
intrepeat,ri;
%d"
&
repeat);
for(ri=1;
ri<
=repeat;
ri++){
strcpy(longest,sx);
(字符串的处置要用到相应的函数)strcpy是字符赋值的运算符
i++){(那个地址已经将第一个字符输入作为i=0因此要小于5而不是相应的小于等于5)
sx);
(现在那个地址一个空格标书字符串的终止,每一次都是要再一次的输入相应的sx的值)
(注意scanf(“%s”)和scanf(“%c”)的区别)
if(strlen(sx)>
strlen(longest))//若是那个地址是>
=那么会将最后的字符串输出
}
longest);
输入一个字符串t和一个正整数m,将字符串t中从第m个字符开始的全数字符复制到字符串s中,再输出字符串s。
要求概念并挪用函数strmcpy(s,t,m),它的功能是将字符串t中从第m个字符开始的全数字符复制到字符串s中,函数形参s和t的类型是字符指针,形参m的类型是int,函数类型是void。
3(repeat=3)
happynewyear
7
happy
1
new
4
Outputis:
newyear(从"
happynewyear"
第7个字符开始组成的新字符串为"
newyear"
)
happy(从"
happy"
第1个字符开始组成的新字符串为"
errorinput("
new"
的长度小于4)
*/#include<
#include<
chars[80],t[80];
unsignedintm;
voidstrmcpy(char*s,char*t,intm);
getchar();
m);
if(strlen(t)<
m)
errorinput\n"
);
else{
/**/
strmcpy(s,t,m);
s);
}
voidstrmcpy(char*s,char*t,intm){
char*from;
char*to;
from=t+m-1;
to=s;
(因此改变to的同时也是在改变s的值)
do{
*to=*from;
from++;
to++;
}while(*(from-1)!
='
\0'
}(直接挪用函数是不是能够和函数字符串的书写)
//voidstrmcpy(char*s,char*t,intm){
strcpy(s,t+m-1);
}(因为那个地址面字符串的最后都有一个终止的零字符,因此要减去1)
输入一行字符(不超过80个),统计其中的大写字母、小写字母、空格、数字和其他字符的个数。
bFaE3+8=1R
大写字母数为:
3
小写字母数为:
2
空格为:
1
数字为:
其他字符为:
voidmain()
chars[80];
char*p;
intblank,digit,lower,other,upper;
upper=lower=blank=digit=other=0;
p=s;
for(;
*p!
;
p++){(什么缘故while(*p++)替换之后显示的是其它字符的个数要增加一个?
)//字符串中回车确实是等于了零,,即终止符
if(*p>
A'
&
*p<
Z'
upper++;
elseif(*p>
a'
z'
lower++;
0'
9'
digit++;
//在那个地址数字也是需要写上单引号的只若是字符都是需要写上单引号
elseif(*p=='
'
blank++;
else
other++;
/**/
%d\n小写字母数为:
%d\n空格为:
%d\n数字为:
%d\n其他字符为:
%d\n"
upper,lower,blank,digit,other);
输入一个字符串str,再输入一个字符c,将字符串str中显现的所有字符c删除。
要求概念并挪用函数delchar(str,c),它的功能是将字符串str中显现的所有c字符删除,函数形参str的类型是字符指针,形参c的类型是char,函数类型是void。
输入
happynewyear(字符串"
a(待删除的字符'
bee(字符串"
bee"
e(待删除的字符'
e'
111211(字符串"
111211"
1(待删除的字符'
1'
输出
Afterdeleted,thestringis:
hppynewyer(字符串"
中的字符'
都被删除)
b(字符串"
2(字符串"
charc;
charstr[80];
voiddelchar(char*str,charc);
gets(str);
%c"
c);
delchar(str,c);
voiddelchar(char*str,charc){
charstr1[80];
inti,j=0;
for(i=0;
str[i];
if(str[i]!
=c){
str1[j]=str[i];
j++;
Str1[j]=0;
for(i=0,j=0;
str[j];
i++,j++){
str[i]=str1[j];
str[i]=0;
}//自己从头做的程序
//因为在那个地址最后要输出的仍是str因此只是从头概念了一个str1数组起到一个桥梁的作用
}localfunctiondefinitionsareillegal确实是函数少了一个}或是多了一个}一样报错犯错的位置是上一个函数
输入一个字符串(长度不超过80),判定该字符串是不是为“回文”。
“回文”是指顺读和倒读都一样的字符串,如“XYZYX”和“xyzzyx”。
要求概念并挪用函数mirror(p)判定字符串p是不是为“回文”,若是p是回文字符串,返回1,不然,返回0,函数形参p的类型是字符指针,函数类型是int。
abcddcba
abcddcb
YES
NO
intmirror(char*p);
if(mirror(s)!
=0)
YES\n"
NO\n"
intmirror(char*p)
inti=0,len=0;
char*t=p;
while(*(p++))(现在已经将字符p移动到最后一个字符)
len++;
//判定字符的个数
while((*(t+i)==*(t+len-i-1))&
(i<
len/2))//在中间的时候就进行判定停止的条件判定
i++;
if(i<
len/2)
else
return1;
//intmirror(char*p){
chari,*k=p;
intlen=0;
while(*(p++))len++;
len/2;
if(*(k+i)!
=*(k+len-i-1))break;
//现在那个地址是k而不是p因为p在那个地址面已经指向最后了
if(i>
=len/2)
return1;
else
return0;
(最经新写上的)