菜单的使用方法
来源:互联网 发布:网络推广简历 编辑:程序博客网 时间:2024/05/29 19:37
来源于C Primer Plus(第五版)第416页
ans = getchar ();
ans = tolower (ans);
eatline ();
while (strchr ("ulton", ans) == NULL)
{
puts ("Please enter a u, l, t, o or n:");
ans = tolower (getchar ());
eatline ();
}
void eatline (void)
{
while (getchar () != '/n')
continue;
}
感觉整个程序结构较好,特记下:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
char showmenu (void);
void eatline (void);
void show (void (*p) (char *));
void ToUpper (char *);
void ToLower (char *);
void Transpose (char *);
void Dummy (char *);
int main (void)
{
char line[81];
char copy[81];
char choice;
void (*pfun)(char *);
puts ("Enter a string (empty line to quit): ");
while (gets (line) != NULL && line[0] != '/0')
{
while ((choice = showmenu ()) != 'n')
{
switch (choice)
{
case 'u':
pfun = ToUpper; break;
case 'l':
pfun = ToLower; break;
case 't':
pfun = Transpose; break;
case 'o':
pfun = Dummy; break;
default:
break;
}
strcpy (copy, line);
show (pfun, copy);
}
puts ("Enter a string (empty line to quit): ");
}
puts ("Bye!");
return 0;
}
char showmenu (void)
{
char ans;
puts ("Enter menu choice: ");
puts ("u) uppercase l) lowercase");
puts ("t) transposed case o)original case");
puts ("n) next string");
ans = getchar ();
ans = tolower (ans);
eatline ();
while (strchr ("ulton", ans) == NULL)
{
puts ("Please enter a u, l, t, o or n:");
ans = tolower (getchar ());
eatline ();
}
return ans;
}
void eatline (void)
{
while (getchar () != '/n')
continue;
}
void ToUpper (char *str)
{
while (*str)
{
*str = toupper (*str);
str++;
}
}
void ToLower (char *str)
{
while (*str)
{
*str = tolower (*str);
str++;
}
}
void Transpose (char * str)
{
while (*str)
{
if (islower (*str))
*str = toupper (*str);
else if (isupper (*str))
*str = tolower (*str);
str++;
}
}
void Dummy (char *str)
{
//不改变字符串
}
void show (void (*fp)(char *), char *str)
{
(*fp)(str);
puts (str);
}
- 菜单的使用方法
- SlidingMenu菜单的使用方法
- Github上的SlidingMenu菜单的使用方法
- android下拉菜单spinner的使用方法
- Dev 右键弹出菜单的使用方法
- android下拉菜单spinner的使用方法
- Android学习 - 下拉菜单spinner的使用方法
- android下拉菜单spinner的使用方法
- android下拉菜单spinner的使用方法
- android下拉菜单spinner的使用方法
- android下拉菜单spinner的使用方法
- android下拉菜单spinner的使用方法
- android下拉菜单spinner的使用方法
- android下拉菜单spinner的使用方法
- ANDROID下拉菜单SPINNER的使用方法
- 侧滑菜单SlidingMenu的使用方法
- FL Studio剪辑菜单的使用方法
- Bootstrap下拉菜单使用方法
- struct sockaddr_in和struct sockaddr区别
- 学写博客 学ASP.NET
- 生病了
- ListActivity/ListView用法 与 @+id/ 与 @android:id 关系小解
- Oracle中sign函数的简单用法
- 菜单的使用方法
- MPEG-2TS码流编辑的原理及其应用
- Android Sqlite3 编程详解
- oracle数据库中 case when的用法
- 链表的归并排序:来自STL_ list_ sort 算法
- MVC架构在Asp.net中的应用和实现
- 《优雅是女人最美的外衣》-欧石楠
- ASP.NET附件上传下载
- Flash设置为首页和收藏夹的代码