c语言中用字符串数组显示菜单的解决方法_C 语言

以前写菜单方面东西时往往重复, 发现这个方法还可以, 用一个指针的指针解决遍历问题.
代码如下所示:

复制代码 代码如下:

#include <stdio.h>
static char *menu[] = {
  "1 --- push one item./n",
  "2 --- pop one item./n",
  "3 --- quit./n",
  NULL
};
void Show_menu();
int main()
{
 Show_menu();
 return 0;
}
void Show_menu()
{
 char **p;

 p = menu;
 while(NULL != *p)
 {
  printf("%s", *p);
  *p ++;
 }
}

时间: 2024-08-03 13:42:24

c语言中用字符串数组显示菜单的解决方法_C 语言的相关文章

将字符串str1复制为字符串str2的三种解决方法_C 语言

1.自己编写函数,将两个字符串进行复制 复制代码 代码如下: #include<iostream>using namespace std;int main(){   char str1[]="I love China!",str2[20];   void Strcpy(char *p1,char *p2);   Strcpy(str2,str1);   cout<<"str1: "<<str1<<endl;   cou

VC实现动态菜单的创建方法_C 语言

本文简述了在程序不支持MFC,CMenu不可用的情况下,动态创建系统托盘菜单的方法.由于菜单项是不确定的,因而就需要用 sdk 创建一个动态弹出菜单. 主要实现代码如下: //------------------ code begin ---------------- //在类中定义的变量: // 双击托盘图标时对应的菜单项 id. UINT m_nDClickMenuItemId; // 弹出菜单句柄. m_hMenu m_hMenu; ///动态创建右键菜单项. ///@param item

C语言安全之数组长度与指针实例解析_C 语言

1.C语言编码需要保证变长数组的长度参数位于合法范围之内 例如以下代码: void func(size_t s) { int vla[s]; /*...*/ } /*...*/ func(size); /*...*/ 解决方案如下: enum {MAX_ARRAY = 1024}; void func(size_t s) { if(s < MAX_ARRAY && s != 0) { int vla[s]; /*...*/ } else { //错误处理 } } /*...*/ fu

C++二分法在数组中查找关键字的方法_C 语言

本文实例讲述了C++二分法在数组中查找关键字的方法.分享给大家供大家参考.具体如下: /* 此程序演示了二分法查找算法(针对按从小到大排列的数组)的实现. */ #include <iostream> using namespace std; /* 功能: 实现数组的二分法查找(只算法只适合按从小到大排列的数组) 返回值:关键字在数组中的下标, 返回-1表示未找到 a[]: 要搜索的数组 len: 数组元素个数 key: 要查找的关键字 */ int binSearch(int a[], in

C++不使用变量求字符串长度strlen函数的实现方法_C 语言

本文实例讲述了C++不使用变量求字符串长度strlen函数的实现方法.分享给大家供大家参考.具体实现方法如下: 1.strlen的源码实现: size_t strlen(const char *str) //strlen不做内存非法判断,如果是NULL,会core. { const char *eos=str; while(*eos++); return (eos-str-1); } 2.常见面试题会要求不使用额外变量,实现strlen函数: 实现一: int strlen(const char

C语言中查找字符在字符串中出现的位置的方法_C 语言

C语言strchr()函数:查找某字符在字符串中首次出现的位置 头文件:#include <string.h> strchr() 用来查找某字符在字符串中首次出现的位置,其原型为: char * strchr (const char *str, int c); [参数]str 为要查找的字符串,c 为要查找的字符. strchr() 将会找出 str 字符串中第一次出现的字符 c 的地址,然后将该地址返回. 注意:字符串 str 的结束标志 NUL 也会被纳入检索范围,所以 str 的组后一个

C语言 结构体数组详解及示例代码_C 语言

所谓结构体数组,是指数组中的每个元素都是一个结构体.在实际应用中,结构体数组常被用来表示一个拥有相同数据结构的群体,比如一个班的学生.一个车间的职工等. 定义结构体数组和定义结构体变量的方式类似,请看下面的例子: struct stu{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在小组 float score; //成绩 }class[5]; 表示一个班级有5个学生. 结构体数组在定义的同时也可以初始化,例如: str

16种C语言编译警告(Warning)类型的解决方法_C 语言

当编译程序发现程序中某个地方有疑问,可能有问题时就会给出一个警告信息.警告信息可能意味着程序中隐含的大错误,也可能确实没有问题.对于警告的正确处理方式应该是:尽可能地消除之.对于编译程序给出的每个警告都应该仔细分析,看看是否真的有问题.只有那些确实无问题的警告才能放下不管. 说明: 由于编译的警告各种各样,根本不可以一一罗列出来,下面只是列举出比较典型的一些警告,还有一些警告,大家只要根据字面意思,就可以很快的查找出来,并解决之. 类型1:显示:warning: implicit declara

C语言实现最长递增子序列问题的解决方法_C 语言

本文实例展示了C语言实现最长递增子序列问题的解决方法.分享给大家供大家参考.具体方法如下: 问题描述: 给定一个序列,找出其最长递增子序列长度. 比如 输入 1 3 7 5 输出 3 算法解决思路: 利用动态规划的思想,以序列的每个点最为最右端,找出每个点作为最右端时的子序列长度的最大值,即问题的求解.因此,在计算前面的每个点的时候,将其结果保存下来,后面的点与前面的点的数值进行比较,如果大,则在其长度基础上加1,并且找出所有可能情况下最长的保存为当前点的长度.形成递归. 具体实现代码如下: #