c语言经典100例

server/2024/10/17 16:48:52/

1.字符串转为数字

#include <stdio.h>int strToInt(char *s)
{int num=0;int sign=1;int step=1;if (*s == '-'){sign = -1;s++;}while (*s >= '0'&&*s <= '9'){num = num*10+(*s-'0');step += 10;s++;}return num*sign;
}int main()
{char a[10] = "-1234";char *s =a ;printf("字符型:%s,整形:%d",s,strToInt(s));return 0;
}

2.二维字符数组转一维数组

#include <stdio.h>
#include <stdlib.h>int main()
{char a[3][3] = { 'w','w','w','a','a','a','l','l','l'};char n[10] = "";for (int i = 0,m=0; i < 3; ++i){for (int j = 0; j < 3; ++j){printf("%c",a[i][j]);n[m] = a[i][j];m++;}printf("\n");}n[9] = '\0';printf("%s\n",n);return 0;
}

3.数字转换为字符串

#include <stdio.h>void intToString(int num, char *str) {int i = 0;int isNegative = 0;// 处理负数if (num < 0) {isNegative = 1;num = -num; // 将负数转为正数}// 转换整数为字符串do {str[i++] = (num % 10) + '0'; // 获取当前数字并转换为字符num /= 10; // 去掉当前的最后一位数字} while (num > 0);// 如果是负数,添加负号if (isNegative) {str[i++] = '-';}// 添加字符串结束符str[i] = '\0';// 反转字符串for (int j = 0; j < i / 2; j++) {char temp = str[j];str[j] = str[i - j - 1];str[i - j - 1] = temp;}
}int main() {int number = -12345; // 示例整数char str[20]; // 确保足够大以存放转换结果intToString(number, str); // 调用转换函数printf("整数转换的字符串为:%s\n", str); // 输出结果return 0;
}

4.统计一行字符串中单词的个数

#include <stdio.h>int main()
{char a[] = "hello world   my man!";char *pa = a;int count = 0;int inWord = 0; // 用于跟踪是否在单词内部while (*pa != '\0') // 直到字符串的结尾{if (*pa == ' ' || *pa == '\t' || *pa == '\n') // 如果是空格、制表符或换行符{inWord = 0; // 不在单词内部}else{if (inWord == 0) // 进入一个新单词{count++;inWord = 1; // 现在在单词内部}}pa++; // 移动到下一个字符}printf("单词的数量为:%d\n", count);return 0;
}

5.删除数组中相同的数

#include <stdio.h>
#include <stdlib.h>void del(int *a, int size) {int *temp = (int*)malloc(size * sizeof(int)); // 临时数组,用于存储去重后的结果int pre = 0;int rear = 1;int j = 0;// 第一个元素肯定是要保留的temp[j++] = a[pre];// 遍历数组while (rear < size) {if (a[pre] != a[rear]) { // 如果当前元素和前一个元素不同temp[j++] = a[rear]; // 保存不重复的元素pre = rear;          // 更新前指针}rear++; // 后指针继续前进}// 输出去重后的数组printf("去重后的数组: ");for (int i = 0; i < j; i++) {printf("%d ", temp[i]);}printf("\n");free(temp); // 释放动态分配的内存
}int main() {int a[] = {1, 1, 1, 2, 2, 3, 4, 4, 5, 6, 6, 6, 7, 8, 8, 9, 9, 9};int size = sizeof(a) / sizeof(a[0]); // 计算数组大小del(a, size); // 调用函数删除重复元素return 0;
}

6.移动字符串中的内容

#include <stdio.h>void moveBack(int m, char *p)
{char temp[24];  // 临时数组用于保存前 m 个字符int n = 0;      // 用于计算字符串长度// 手动计算字符串长度while (p[n] != '\0') {n++;}if (m > n) m = n;  // 确保 m 不会大于字符串的长度// 复制前 m 个字符到 temp 中for (int i = 0; i < m; ++i) {temp[i] = p[i];}// 将后面的字符向前移动for (int i = m; i < n; ++i) {p[i - m] = p[i];}// 将 temp 中的前 m 个字符放到末尾for (int i = 0; i < m; ++i) {p[n - m + i] = temp[i];}// 重新设置字符串的结尾p[n] = '\0';
}int main() {char str[] = "world hello ";printf("前:%s\n", str);moveBack(6, str);printf("后:%s\n", str);return 0;
}

7.无符号整数去掉最高位

#include <stdio.h>unsigned int fun(unsigned int a)
{int b=1;int temp = a;while (temp/10>=10){b *= 10;temp /= 10;}b=b *10;a=a%b;return a;
}int main() {printf("%d", fun(7894));return 0;
}

8.打印下三角

#include <stdio.h>void xiasanjiao(int a[4][4])
{for (int i=0;i<4;++i){for (int j=0; j <=i ; ++j){printf("%d ",a[i][j]);}printf("\n");}}int main()
{int a[4][4] = {8,0,0,0,8,8,0,0,8,8,8,0,8,8,8,8};for (int i = 0; i < 4; ++i){for (int j = 0; j <4; ++j){printf("%d ", a[i][j]);}printf("\n");}printf("下三角:\n");xiasanjiao(a);return 0;
}

9.移动数组中的内容

#include <stdio.h>void moveBack(int a[10], int m) {int b[10] = { 0 };// 复制前 m 个元素到 bfor (int i = 0; i < m; ++i) {b[i] = a[i];}// 将后面的元素向前移动 m 位for (int i = m; i < 10; ++i) {a[i - m] = a[i];}// 将 b 中的元素放到数组的后 m 位for (int i = 0; i < m; ++i) {a[10 - m + i] = b[i];}
}int main() {int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };moveBack(a, 3);for (int i = 0; i < 10; ++i) {printf("%d ", a[i]);}return 0;
}

10.删除字符串中的空格

#include <stdio.h>void delSpace(char* a) {char* original = a; // 保存原始字符串指针char* result = a;   // 用于存储处理后的结果// 遍历原始字符串while (*a != '\0') {if (*a != ' ' && *a != '\t') { // 只复制非空格和非制表符字符*result++ = *a; // 复制字符到结果字符串}a++;}*result = '\0'; // 添加字符串结束符
}int main() {char a[] = "h  iph  o p";delSpace(a);printf("%s\n", a); // 打印处理后的字符串return 0;
}


http://www.ppmy.cn/server/131237.html

相关文章

PCL 平面点云边界特征提取(alpha shapes)

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 点云边界提取 2.1.2 可视化点云与边界 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接: PCL点云算法与项目实战案例汇总(长期更新) 一、概述 平…

树莓派应用--AI项目实战篇来啦-3.OpenCV 读取写入和显示图像

1. 介绍 在计算机视觉和图像处理领域&#xff0c;读取和显示图像是最基础且常见的操作之一&#xff0c;OpenCV作为一个强大的计算机视觉库&#xff0c;提供了丰富的功能来处理图像数据。 读取、显示和写入图像是图像处理和计算机视觉的基础&#xff0c;即使裁剪、调整大…

centos系列,yum部署jenkins2.479.1,2024年长期支持版本

centos系列&#xff0c;yum部署jenkins2.479.1&#xff0c;2024年长期支持版本 0、介绍 注意&#xff1a;jenkins建议安装LTS长期支持版本&#xff0c;而不是安装每周更新版本&#xff0c;jenkins安装指定版本 openjdk官网下载 Index of /jenkins/redhat-stable/ | 清华大学开…

【CSS3】css开篇基础(2)

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…

TensorFlow 的核心概念

TensorFlow 是一个开源的机器学习框架&#xff0c;由 Google 开发和维护。它提供了一个强大的工具集&#xff0c;用于构建和训练各种机器学习模型。 TensorFlow 的核心概念是计算图&#xff08;Computational Graph&#xff09;。计算图由节点&#xff08;Nodes&#xff09;和…

为什么人工智能用 Python?

人工智能领域倾向于使用Python&#xff0c;主要归因于Python的多个显著优势&#xff1a; 简洁性与可读性&#xff1a;Python的语法设计简洁明了&#xff0c;代码易于阅读和理解&#xff0c;这对于涉及复杂算法和逻辑的人工智能项目尤为重要。它降低了编程门槛&#xff0c;使得…

008集—— Keyword关键字及getstring的用法(CAD—C#二次开发入门)

CAD二开中&#xff0c;经常会用到用户交互功能&#xff0c;常见的方法如下&#xff1a; GetKeyword 方法提示用户在 AutoCAD 命令提示下输入关键字,GetString 方法提示用户在 AutoCAD 命令提示下输入字符串。两者就有区别又有相似处&#xff0c;getkeyword只允许用户输入指定的…

RTSP与ONVIF协议的区别及其在EasyCVR视频汇聚平台中的应用

在视频监控和物联网设备领域&#xff0c;RTSP&#xff08;Real Time Streaming Protocol&#xff09;和ONVIF&#xff08;Open Network Video Interface Forum&#xff09;是两个重要的协议&#xff0c;它们各自在视频流的传输和控制上发挥着不同的作用&#xff0c;并在实际应用…