c primer plus编程练习第十一章(纯手打欢迎指错)
来源:互联网 发布:一入淘宝深似海下一句 编辑:程序博客网 时间:2024/05/18 08:36
11.1
#include<stdio.h>char *input(char*);int main(void){char test[100];input(test);puts(test);}char *input(char *ptr){char ch;while((ch=getchar())!=EOF)*ptr++=ch;}
11.2
#include<stdio.h>#define LIMIT 7char *input(char*);int main(void){char test[100];input(test);puts(test);}char *input(char *ptr){char ch;int count=0;while(((ch=getchar())!=EOF)&&(ch!=' '&&ch!='\t'&&ch!='\n'&&count<LIMIT)) //遇到 空字符,空格,制表格,换行符,并且小于LIMIT时停止输入 {*ptr++=ch;count++; } *ptr='\0';}
11.3
#include<stdio.h>void input(char*);void output(char*);int main(void){char test[100];input(test);puts(test);puts(" ");output(test);}void input(char *ptr){char ch;while((ch=getchar())!=EOF) *ptr++=ch;}void output(char*ptr){while(*ptr){if(*ptr==' '||*ptr=='\n'||*ptr=='\t')break;elseputchar(*ptr);ptr++;}}11.4
#include<stdio.h>char*strchr_n(char*,char);int main(void){char test[100]="I have an apple ,do you like it ?";char ch;char*target;puts("Please enter a line");gets(test);puts("Enter a letter or punctution.");while((ch=getchar())!=EOF){target=strchr_n(test,ch);printf("%c 's address is %p\nand I will show you something:",ch,target);puts(target);while(getchar()!='\n')continue;}}char*strchr_n(char*ptr,char pts){while(*ptr){if(*ptr==pts)return ptr;elseptr++;}return NULL;}
11.5
#include<stdio.h>int is_within(char,char*);int main(void){char ch;char test[100];int result;puts("Please enter a line.");gets(test);puts("Enter what you want to search.");while((ch=getchar())!=EOF){result=is_within(ch,test);printf("result=%d\n",result);while((getchar())!='\n')continue;}}int is_within(char n,char*target){int count=0;while(*target){if(*target==n){count++;target++;}elsetarget++;}return count;}
11.6
#include<stdio.h> //不知道这题有没有偏离题意 int strncpy_n(char*,char*,int); int main(void){char source[100];char target[100];puts("Enter a line.");while(gets(source)){strncpy_n(target,source,5);puts(target);puts("Enter a line.");}}int strncpy_n(char*s1,char*s2,int n){int count;for(count=0;count<n;count++){if(s2[count]=='\0'){s1[count]=s2[count];return s1;}elses1[count]=s2[count];}}
11.8
#include<stdio.h>#include<string.h>char *back(char*);int main(void){char test[100];while(printf("Please enter a line:")&&gets(test)) puts(back(test));} char *back(char*s1){char s2[100];int i,j;for(i=strlen(s1)-1,j=0;i>=0,j<strlen(s1);i--,j++) { s2[j]=s1[i]; } s2[strlen(s1)]='\0'; return s2;}11.9
#include<stdio.h>#define N 100// 这题参照了官方答案,基本一样啦void d_space(char*);int main(void){char test[N];while(printf("Please enter 9 mark:")&&gets(test)&&test[0]!='\0'){d_space(test);puts(test);}}void d_space(char*s1){int i=0;char *s2;while(*s1){if(*s1==' '){s2=s1;do{*s2=*(s2+1);s2++;}while(*s2);}elses1++;}}10.10
#include<stdio.h> //代码有点难看,有点长。不足请指出#include<string.h>void output_r(char *[],int);void output_l(char*s1[],int n);void first_word(char*s1[],int n);int main(void){char input[10][100];char *target[10];int count=0;while(count<10&&gets(input[count])!=NULL&&input[count][0]!='\0'){target[count]=input[count]; count++;}puts("Please enter a num of list.");puts("1.ÔʼÊä³ö¡£ 2.ASCII˳ÐòÊä³ö¡£ 3.³¤¶ÈµÝÔöÊä³ö¡£ 4.µÚÒ»¸öµ¥´Ê³¤¶ÈÊä³ö¡£ 5.Í˳ö¡£");int ch,i;while(ch=getchar()){switch(ch){case '1':for(i=0;i<count;i++)puts(input[i]);break;case '2':output_r(target,count);for(i=0;i<count;i++)puts(target[i]);break;case '3':output_l(target,count);for(i=0;i<count;i++)puts(target[i]);break;case '4':first_word(target,count);for(i=0;i<count;i++)puts(target[i]);break;case '5':break;default :break; } if(ch=='5') break; if(ch<'1'||ch>'5') break; while(getchar()!='\n') continue;}puts("Bye!");return 0;} void output_r(char*s1[],int n){int i,j;char *temp;for(i=0;i<n-1;i++) for(j=i+1;j<n;j++)if(strcmp(s1[i],s1[j])>0){temp=s1[i];s1[i]=s1[j];s1[j]=temp;}}void output_l(char*s1[],int n){int i,j;char *temp;for(i=0;i<n;i++)for(j=i+1;j<n;j++){if(strlen(s1[i])>strlen(s1[j])){temp=s1[i];s1[i]=s1[j];s1[j]=temp;}}}void first_word(char*s1[],int n){int i,j;char *temp;for(i=0;i<n;i++){temp=strchr(s1[i],' ');if(temp)*temp='\0';}for(i=0;i<n;i++)for(j=i+1;j<n;j++)if(strlen(s1[i])>strlen(s1[j])){temp=s1[i];s1[i]=s1[j];s1[j]=temp;}for(i=0;i<n;i++){temp=strchr(s1[i],'\0');if(temp)*temp=' ';}}11.11
#include<stdio.h>#include<stdbool.h>#include<ctype.h>int main(void){bool result=false;char ch;char*temp;int word=0,upper=0,lower=0,punct=0,digit=0;puts("Please enter a line.(EOF to quit)");while((ch=getchar())!=EOF){temp=ch;temp++;if(isupper(ch))upper++;else if(islower(ch))lower++;else if(ispunct(ch))punct++;else if(isdigit(ch))digit++;if(isalnum(ch)&&result==false){word++;result=true;}if(isspace(ch)&&result==true) result=false;}printf("word=%d,upper=%d,lower=%d,punct=%d,digit=%d",word,upper,lower,punct,digit);}11.12
#include<stdio.h>int main(int argc,char *argv[]){int i;char *s1;for(i=argc-1;i>0;i--)printf("%s ",argv[i]);}
11.13
#include<stdio.h>#include<stdlib.h>int main(int argc,char *argv[]){double x=1;int i;for(i=0;i<atoi(argv[2]);i++) x*=atof(argv[1]);printf("%f \n",x);}
11.14
#include<stdio.h>//这题也参考了别人的答案然后自己写的。#include<ctype.h>int atoi_n(char*);int main(void){char test[100];puts("Please enter digit");gets(test);puts(" 你所输入的字符串将转换为数字整形。"); printf("%d \n",atoi_n(test));} int atoi_n(char*s){char ch;ch=*s++;int num;int sign_mark;{if(ch=='-')sign_mark=1;else if(isdigit(ch)){sign_mark=0;num=ch-'0';}}while(1){ch=*s++;if(isdigit(ch))num=num*10+ch-'0';else break;}if(sign_mark==1)num=-num;return num;}
11.15
#include<stdio.h>#include<string.h>#include<ctype.h>void ToUpper(char*);void ToLower(char*);int main(int argc,char *argv[]){char test[100];char ch;int i=0;puts("Please enter a line.");while((ch=getchar())!=EOF){test[i]=ch;i++;} if(strcmp("-p",argv[1])==0) puts(test);else if(strcmp("-u",argv[1])==0){ToUpper(test);puts(test); }else if(strcmp("-l",argv[1])==0){ToLower(test);puts(test);}return 0;}void ToUpper(char*s){while(*s){*s=toupper(*s);s++;}}void ToLower(char*s){while(*s){*s=tolower(*s);s++;}}
0 0
- c primer plus编程练习第十一章(纯手打欢迎指错)
- c primer plus第十二章编程练习答案(纯手打欢迎指错)
- c primer plus第十三章编程练习答案(纯手打欢迎指错)
- c primer plus第十章编程练习答案(纯手写欢迎指错)
- 《c primer plus》编程练习回顾-第十一章(上)
- C primer plus(第五版)编程练习第十一章
- C Primer Plus 第十一章 编程练习 1-15题
- C ++ Primer Plus 第六版 第十一章编程练习答案
- 《C Primer Plus》第六版 第十一章编程练习
- C primer plus 第十一章 练习1:
- C primer plus 第十一章 练习2:
- C primer plus 第十一章 练习3:
- 记录——《C Primer Plus (第五版)》第七章编程练习第十一题
- 记录——《C Primer Plus (第五版)》第十章编程练习第十一题
- 记录——《C Primer Plus (第五版)》第十一章编程练习第一题
- 记录——《C Primer Plus (第五版)》第十一章编程练习第二题
- 记录——《C Primer Plus (第五版)》第十一章编程练习第三题
- 记录——《C Primer Plus (第五版)》第十一章编程练习第四题
- Dive into python第三章内置数据类型总结
- 如何判断链表有环并计算环的长度
- 小白书79页对字符串和字符的排序
- CodeVs 1011 数的计算
- HDU 3001 三进制状压DP
- c primer plus编程练习第十一章(纯手打欢迎指错)
- [Java大数+输入输出优化] hdu 5047 Sawtooth
- C++中宏定义与内联函数区别
- acdream 1412 2-3 Trees dp
- uva 724 Prime Ring Problem
- 快播网站最后,她打开厢房的窗户,把一盆浊水给倒进湖里
- 马尔科夫随机场
- 推荐一个学通信技术的网站,百度“51学通信”第一个就是
- My Solution: Word Ladder