C语言字符串的另类用法

简介: C语言字符串的另类用法

讲这个例子前,咱们先来看一个简单的程序:字符串数组实现数字转字母:

#include <stdio.h>
#include <string.h>
int main(void)
{
  int num = 15 ;
  //26个字母
  const char str[] = "abcdefghijklmnopqlstuvwxyz" ;
  //这个做法是将num这个十进制数通过取模转换为字母并输出,从程序看,即可知道是输出p
  char a = str[num%26] ;
  printf("a=%c\n",a);
  return 0 ;  
}

当然我们也可以这么写,用指针的形式来表示:

#include <stdio.h>
#include <string.h>
int main(void)
{
  int num = 15 ;
  char *str = "abcdefghijklmnopqlstuvwxyz" ;
  char a = str[num%26] ;
  printf("a=%c\n",a);
  return 0 ;  
}

同样的,结果也是和上面是一样的,我们再对这种写法进行简化,如果初学者的基础不扎实,也许一看就懵了。

#include <stdio.h>
#include <string.h>
int main(void)
{
  int num = 15 ;
  //char *str = "abcdefghijklmnopqlstuvwxyz" ;
  char a = "abcdefghijklmnopqlstuvwxyz"[num%26] ;
  printf("a=%c\n",a);
  return 0 ;  
}

其实不用惊讶,这样的写法和前面两种的意思是一样的,只不过将str替换成了一串字符串。正是因为有了这种做法,所以在写进制转换的时候,可以使用这样的技巧来实现,当然,作为开发者,写出可读性高的代码来说,我并不推崇这样的写法。既然可以向上面这么写,那也就可以向下面这么写,输出的结果是4个3。

#include <stdio.h>
int main(void)
{
  char *p = "0123456789abcdef" ;
  putchar(p[3]);
  //换行
  putchar('\n');
  putchar(*(p + 3));
  putchar('\n');
  putchar("0123456789abcdef"[3]);
  putchar('\n');
  putchar(*("0123456780abcdef"+3));
  putchar('\n');
  return 0 ;
}

往期精彩

C语言常用的几种排序


C语言将xxx.bin文件转为数组


别瞎找了,你要的C语言经典示例都在这~


C语言表驱动法编程实践(精华帖,建议收藏并实践)

目录
相关文章
|
1月前
|
安全 程序员 C语言
探索C语言库函数:字符串拷贝函数strcpy
探索C语言库函数:字符串拷贝函数strcpy
19 0
C4.
|
1月前
|
存储 程序员 C语言
C语言中如何通过指针引用字符串
C语言中如何通过指针引用字符串
C4.
16 0
|
1月前
|
存储 编译器 C语言
在C语言中的数组和字符串
在C语言中的数组和字符串
|
1月前
|
算法 编译器 C语言
C语言猜数字小游戏(也包含python实现的用法)
本文基于VS2022、pycharm和前面的知识,写一个凭借分支与循环的小游戏,比如: 写一个猜数字游戏 游戏要求: 电脑自动生成1~100的随机数 玩家猜数字,猜数的过程中,根据猜测数据的大小给出大了或小了的反馈,直到猜对,游戏结束 在pyhton中生成随机数是比较简单的,可以直接导入random的包,直接生成随机数,导致写猜数字小游戏变成了判读语句和循环语句嵌套就能写出来,所以我不做过多的介绍了,可以直接看后面的代码展示,想了解更多的python可看python的基础知识,这里面有我在学习python的过程中写的笔记
31 0
|
2天前
|
C语言 C++
C语言利用ASCII码表统计字符串每个字符出现的次数
C语言利用ASCII码表统计字符串每个字符出现的次数
5 0
|
4天前
|
存储 C语言
C语言中字符串的引用与数组元素操作
C语言中字符串的引用与数组元素操作
12 0
|
23天前
|
存储 C语言
【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)&&三种strlen模拟实现1
【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)&&三种strlen模拟实现
|
23天前
|
C语言
【C语言】第三回 关于字符串,语句和注释的使用2
【C语言】第三回 关于字符串,语句和注释的使用
|
1月前
|
安全 程序员 C语言
探索C语言库函数:字符串拷贝函数strcpy()
探索C语言库函数:字符串拷贝函数strcpy()
9 0
|
1月前
|
存储 C语言
C语言字符串
C语言字符串
18 0
C语言字符串