C Prime Plus 字符串的一些练习题;
呃呃呃呃呃........
s_gets(char *str,int n)
char *ret_val=fgets(*str,n,stdin)
if(*ret_val)
str=strchr(str,'\n')
*str='\0'
return 0;
QAQ还要加油呀
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<ctype.h>
#define M1 "How are ya,sweetie?"
#define ANSWER "GRANT"
#define SIZE 40
char *pr(char*str);
char *s_gets(char *str,int n);
char *ToUpper(char* str);
char *str_han(char *str,int n);
int main()
{
//复习题!!!!!!
//【1】
/*★★char note[]="See you at the snake bar:";
char *ptr;
ptr=note;
puts(++ptr);
note[7]='\0';
puts(note);
puts(++ptr);*/
//【2】
/*★★ char food[]="Yummy";
char *ptr;
ptr=food+strlen(food);
while(--ptr>=food)
puts(ptr);*/
//【3】
/*★★char goldwyn[40]="art of it all ";
char samuel[40]="I read p";
const char*quote ="the way through.";
strcat(goldwyn,quote);
strcat(samuel,goldwyn);
puts(samuel); */
//【4】
/*★★★☆
char *x=pr("\0"); //打印结果;x的类型;x的打印;*--pc含义与--*pc的不同;把*--pc替换成*pc--的打印结果;
//俩个while用来测什么的;pr()是空字符会如何;必需在main做什么才能让pr正常运行;
//测*pc做四则运算后的地址 //'\0'会出现乱码 */
//【5】
/*★char sign='$';
printf("%d\n",sizeof(sign));
printf("%d\n",sizeof('$'));
printf("%d\n",sizeof("$"));*/
//【6】
/*★★☆char M2[40]="Beat the clock.";
char *M3="chat";
char words[80];
printf(M1);
puts(M1);
puts(M2);
puts(M2+1);
strcpy(words,M2);
strcat(words,"Win a toy.");
puts(words);
words[4]='\0';
puts(words);
while(*M3)
puts(M3++);
puts(--M3);
puts(--M3);
M3=M1;
puts(M3);*/
/*char str1[]="gawsie";
char str2[]="bletonism";
char *ps=;
int i=0;
for(ps=str1;*ps!='\0';ps++);
{
if(*ps=='a'||*ps=='e')
putchar(*ps);
else
(*ps)--;
putchar(*ps);
}
putchar('\n');
while(str2[i]!='\0')
{
printf("%c",i%3?str2[i]:'*');
++i;
}*/
// 【7】+【9】
//★☆
/*char temp[5];
printf("%s",s_gets(temp,8)); */
//【10】就是【7】和【9】的变形
//【11】
/*★★★ char try[SIZE];
puts("Who is buried in Grant's tomb?");
s_gets(try,SIZE);
ToUpper(try);
while(strcmp(try,ANSWER)!=0)
{
puts("No, that's wrong. Try again");
s_gets(try,SIZE);
}
puts("That's right!"); */
//编程练习
//【1】
/* ★★☆char s[81];
printf("%s",str_han(s,20));*/
//【2】
/*★★☆str_han函数里面*/
}
char *pr(char *str)
{
char *pc;
pc=str;
while(*pc)
putchar(*pc++);
do{
putchar(*pc--);
}while(pc-str);
return(pc);
}
char *s_gets(char *st,int n)
{
char *ret_val;
ret_val=fgets(st,n,stdin);
if(ret_val)
{
st=strchr(st,'\n');
*st='\0';
/* while(getchar()!='\n')//做enter的输入,再结束输入 ,【我的话会省略,用处不大,不太符合平常人使用】
continue;*/
}
return ret_val;
}
char *ToUpper(char *str)
{
while(*str)
{
*str=toupper(*str);
str++;//指针变量不用返回值
}
}
char *str_han(char *str,int n)
{
int i=0;
for(i=0;i<n;i++)
{
str[i]=getchar();
/*if(str[i]=='\n'||str[i]==' ')
str[i]='\0';*/
}
return str;
}