将字符串从小写转换为大写

在下面的程序中,将要求用户输入小写的String,然后程序会将其转换为大写的String。程序中遵循的逻辑:所有小写字母(a-z)的ASCII值均在97至122之间,而其相应的大写字母(A-Z)的ASCII值均比其小32。例如,“ a”的ASCII值为97,而“ A”的ASCII值为65(97-32)。其他字母也一样。基于此逻辑,编写了以下C程序进行转换。

#include <stdio.h>
#include <string.h>int main(int argc, char const *argv[])
{char str[128];int i;printf("Enter the string:");scanf("%s",str);for (i = 0; i <= strlen(str);i++){if(str[i] >= 97 && str[i] <= 122)str[i] = str[i] - 32;}printf("\nUpper Case String is : %s",str);printf("\n");return 0;
}

编译输出:


显示用户输入的字符的ASCII的值

ASCII值将英文字符表示为数字,每个字母分配有一个0到127之间的数字。例如:

#include <stdio.h>int main(int argc, char const *argv[]){char ch;printf("Enter any character:");scanf("%c", &ch);/*使用格式说明符,我们可以获得ASCII码个字符。当我们将%d格式说明符用于char变量,然后显示char的ASCII值*/ printf("ASCII value of character %c is: %d", ch, ch);printf("\n");return 0;
}

编译输出:

使用指针查找最大数量

在下面的程序中,我们有三个整数num1,num2和num3。我们已分配这三个数字的地址,以三分p1,p2和p3分别。我们使用if else语句对存储在指针所指向的地址处的值进行了比较。

#include <stdio.h>int main(int argc, char const *argv[]){int num1, num2, num3;int *p1, *p2, *p3;printf("Enter First Number: ");scanf("%d",&num1);printf("Enter Second Number: ");scanf("%d",&num2);printf("Enter Third Number: ");scanf("%d",&num3);//将输入数字的地址分配给指针p1 = &num1;p2 = &num2;p3 = &num3;if(*p1 > *p2){if(*p1 > *p3){printf("%d is the largest number", *p1);}else{printf("%d is the largest number", *p3);}}else{if(*p2 > *p3){printf("%d is the largest number", *p2);}else{printf("%d is the largest number", *p3);}}printf("\n");return 0;
}

编译输出:

检查数字是否为回文

如果数字保持不变,即使我们反转其数字,该数字也称为回文数。例如12321是回文数,因为如果我们反转其数字,它将保持不变。

#include<stdio.h>int check_palindrome(int num){static int reverse_num=0,rem;if(num!=0){rem=num%10;reverse_num=reverse_num*10+rem;check_palindrome(num/10);}return reverse_num;
}
int main(){int num, reverse_num;printf("Enter a number: ");scanf("%d",&num);reverse_num = check_palindrome(num);if(num==reverse_num)printf("%d is a palindrome number",num);elseprintf("%d is not a palindrome number",num);printf("\n");return 0;
}

编译输出:


检查元音或辅音

#include <stdio.h>
#include <stdbool.h>int main(){char ch;bool isVowel = false;printf("Enter an alphabet: ");scanf("%c",&ch);if(ch=='a'||ch=='A'||ch=='e'||ch=='E'||ch=='i'||ch=='I'||ch=='o'||ch=='O'||ch=='u'||ch=='U'){isVowel = true;}if (isVowel == true)printf("%c is a Vowel", ch);elseprintf("%c is a Consonant", ch);printf("\n");return 0;
}

编译输出:


使用递归反转字符串

#include <stdio.h>
#include <string.h>void reverse_string(char*, int, int);int main(){char string_array[150]; //此数组最多可容纳150个printf("Enter any string:");scanf("%s", &string_array);//调用我们用户定义的函数reverse_string(string_array, 0, strlen(string_array)-1);printf("\nReversed String is: %s",string_array);printf("\n");return 0;
}void reverse_string(char *x, int start, int end)
{char ch;if (start >= end)return;ch = *(x+start);*(x+start) = *(x+end);*(x+end) = ch;reverse_string(x, ++start, --end);
}

编译输出:

使用递归的数组元素的总和

#include<stdio.h>int sum_array_elements( int arr[], int n );int main(){int array[] = {1,2,3,4,5,6,7};int sum;sum = sum_array_elements(array,6);printf("\nSum of array elements is:%d",sum);printf("\n");return 0;
}int sum_array_elements( int arr[], int n ) {if (n < 0) {return 0;} else{return arr[n] + sum_array_elements(arr, n-1);}
}

编译输出:

使用指针的数组元素的总和

#include<stdio.h>int main(){int array[5];int i,sum=0;int *ptr;printf("\nEnter array elements (5 integer values):");for(i=0;i<5;i++)scanf("%d",&array[i]);/* array = &array[0] */ptr = array;for(i=0;i<5;i++) {//*ptr 指地址sum = sum + *ptr;ptr++;}printf("\nThe sum is: %d",sum);printf("\n");return 0;
}

编译输出:


以升序排列数字

下面的程序提示用户输入n个数字,一旦用户输入完这些数字,该程序将对其进行排序并以升序显示。

#include<stdio.h>void sort_numbers_ascending(int number[], int count){int temp, i, j, k;for (j = 0; j < count; ++j){for (k = j + 1; k < count; ++k){if (number[j] > number[k]){temp = number[j];number[j] = number[k];number[k] = temp;}}}printf("Numbers in ascending order:\n");for (i = 0; i < count; ++i)printf("%d\n", number[i]);
}int main(){int i, count, number[20];printf("How many numbers you are gonna enter:");scanf("%d", &count);printf("\nEnter the numbers one by one:");for (i = 0; i < count; ++i)scanf("%d", &number[i]);sort_numbers_ascending(number, count);return 0;
}

编译输出:

二进制转换为十进制

创建了一个用户定义的函数,binaryToDecimal()用于从二进制到十进制的转换。该程序将二进制数(由用户输入)作为输入,并使用函数将其转换为十进制数。

#include <stdio.h>
#include <math.h>int binaryToDecimal(long binarynum){int decimalnum = 0, temp = 0, remainder;while (binarynum!=0){remainder = binarynum % 10;binarynum = binarynum / 10;decimalnum = decimalnum + remainder*pow(2,temp);temp++;}return decimalnum;
}int main(){long binarynum;printf("Enter a binary number: ");scanf("%ld", &binarynum);printf("Equivalent decimal number is: %d", binaryToDecimal(binarynum));printf("\n");return 0;
};

编译输出:

欢迎关注公众号【程序猿编码】,添加本人微信号(17865354792),回复:领取学习资料。进入技术交流群。网盘资料有如下:

一些杂乱的C语言算法相关推荐

  1. c语言单片机求最小公倍数,单片机常用的14个C语言算法,要熟记在心哦!

    原标题:单片机常用的14个C语言算法,要熟记在心哦! 算法(Algorithm):计算机解题的基本思想方法和步骤. 算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么 ...

  2. 易语言html规则分析,易语言算法原理浅析【一】(示例代码)

    注: 如果你看完了下面的文章.就来试试这个KeyGenMe吧,相信你能有所收获. 一.文章开头首先我们要贴上一段易语言代码,并且编译这段代码,从汇编角度分析易语言程序编译后,易语言算法在汇编中的实现过 ...

  3. c语言约瑟夫环问题,C++_详解约瑟夫环问题及其相关的C语言算法实现,约瑟夫环问题 N个人围成一圈 - phpStudy...

    详解约瑟夫环问题及其相关的C语言算法实现 约瑟夫环问题 N个人围成一圈顺序编号,从1号开始按1.2.3......顺序报数,报p者退出圈外,其余的人再从1.2.3开始报数,报p的人再退出圈外,以此类推 ...

  4. 编写一个字节数的rtu C语言校验程序,Modbus通信协议中CRC校验的快速C语言算法

    Modbus通信协议中CRC校验的快速C语言算法 2004年第11期 福 建 电 脑 63 Modbus通信协议中CRC校验的快速C语言算法 孟开元 (西安石油大学计算机学院陕西西安710065) [ ...

  5. c语言编常见算法,5个常见C语言算法

    5个常见C语言算法 十进制转换为二进制的递归程序 字符串逆置的递归程序 整数数位反序,例如12345->54321 四舍五入程序(考虑正负数) 二分法查找的递归函数 #include #incl ...

  6. 算法与数据结构c语言版PPT,C语言算法与数据结构.ppt

    C语言算法与数据结构.ppt 第十二章 算法与数据结构12.1 算法的基本概念,该节知识点所占试题比重为12,属于重点考查对象,基本上每次必考,主要考查算法的定义和对算法复杂度的理解.历次试题分值在0 ...

  7. c语言中闰年的流程图_C语言-算法与流程图

    <C语言-算法与流程图>由会员分享,可在线阅读,更多相关<C语言-算法与流程图(22页珍藏版)>请在人人文库网上搜索. 1.目录,第一章 绪论 第二章 算法与流程图 第三章 数 ...

  8. c语言二分法_14个经典C语言算法你就不看一眼?(附详细代码)

    今天,给大家讲一讲,单片机常用的14个C语言算法(附详细代码)哟! 一.计数.求和.求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值.终值或结束条件,更要注意用来表示计数.和. ...

  9. 怎么得到16位校检和-c语言,16位CRC校验C语言算法.pdf

    16位CRC校验C语言算法.pdf CRC 算法原理及C 语言实现 摘 要 本文从理论上推导出CRC算法实现原理,给出三种分别适应不同计算机或微控 制器硬件环境的C语言程序.读者更能根据本算法原理,用 ...

最新文章

  1. C++/C++11中头文件functional的使用
  2. 插值算法C实现(一元全区间)
  3. sqlserver2000内存突破4g_友商都上16G,华为手机为何一直用8G内存?网友:效仿iOS...
  4. ng执行css3动画
  5. Numpy的学习6-深浅赋值(copydeep copy)
  6. 利用Python进行数据分析--数据聚合与分组运算
  7. TCP/IP模型背后的内涵(二)
  8. java 异常_23、Java异常分类
  9. MAML代码及理论的深度学习 PyTorch二阶导数计算
  10. V2X方案之OBU介绍
  11. java格林威治时间转北京时间
  12. 【RFC2818 基于 TLS 的 HTTP】(翻译)
  13. 基于iPhone 上的运动协处理器M7判断用户当前的运动(姿态)类型
  14. A - Artwork Gym - 101550A
  15. 进图形界面黑屏的解决办法
  16. 用IDEA新建一个工程项目并编写HelloWorld
  17. netty 实现消息群发
  18. opencv + MFC 视频图像显示
  19. 为什么会有堆内存和栈内存之分
  20. linux照明控制软件,基于ARM-Linux的城市景观照明控制平台设计

热门文章

  1. 数字 IC 技能拓展(16)Zynq 与 Pynq 都是什么呢
  2. [论文阅读] (26) 基于Excel可视化分析的论文实验图表绘制总结——以电影市场为例
  3. 计算机服务器机房 消防灭火,服务器机房消防系统和维护
  4. Web前端期末大作业---HTML+CSS+JS实现实现捉虫小游戏
  5. Sqlmap是什么以及使用方法
  6. 做一个功能比较齐全的小程序商城选择好的系统很重要
  7. 专升本管理学知识点总结——目标管理
  8. Java Web完整学习记录
  9. 拉上谷歌高通 三星围攻苹果
  10. 第1课-OC对象原理基础