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

在下面的程序中,将要求用户输入小写的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. 厦门大学计算机专业录取分数线2019,厦门大学2019年本科生录取分数线
  2. CVPR2017: Learning Deep Context-aware Features over Body and Latent Parts for
  3. 在线压缩png图像工具
  4. android 提供的方法,Android编程之创建自己的内容提供器实现方法
  5. mysql join 循环_关于mysql联表的内嵌循环操作nested loop join中on和where执行顺序问题...
  6. java 防止证书导出_如何把安全证书导入到java中的cacerts证书库
  7. Eve-NG-Toolkit
  8. offset must be non-negative and no greater than buffer length (0)(tensorflow.keras)
  9. 1.3 将临时变量内联化
  10. PassFab iPhone Unlocker安装方法
  11. delphi IDE插件 cnpack 使用记录
  12. 【安装配置】DirectAdmin安装Nginx方法
  13. python股票网格交易法详解_详解网格交易法
  14. 光栅(Raster)性能优化
  15. pixi的使用之创建和操作精灵
  16. 内存管理(15)——UI(20)——DeleteObject
  17. 斥资75元,我搭建了自己的博客网站
  18. 学习python的微信公众号_python学习—实现微信公众号聊天机器人
  19. 《文言文复兴系列 4》(江湖一剑客)
  20. 不要以你的现状来判断你的未来--俞敏洪

热门文章

  1. 创新实训【12】——热词查询功能
  2. 【JAVA】项目开发团队分配管理软件
  3. 为什么你写了一万小时的代码,却没能成为架构师?
  4. 如何快速查找下载文献
  5. android socket代理app,android socket客户端app
  6. 互动作业Android版本下载,互动作业app
  7. 多linux系统的安装方法,在Linux系统中安装使用WPS的方法
  8. 《Artificial Intelligence in Finance》(AI金融, by Yves Hilpisch)台湾谢承熹Chenghsi Hsieh老师中文讲解
  9. 梦幻西游手游300级装备、30级宝石、抽奖后台、坐骑版本搭建技术讲解
  10. C语言 IO多路复用——select函数