当前位置: 首页 > news >正文

C语言输入函数

scanf 是 C 语言标准库函数,用于从标准输入(如键盘)按指定格式读数据并存入变量,核心要点:
功能:把输入字符转成对应数据类型(如 %d 转十进制整数 ),存到变量地址。
用法:scanf(“格式控制串”, &变量1, &变量2…) ,例 scanf(“%d %f”, &age, &score); 。
格式符:%d(int)、%f(float)、%lf(double)、%c(字符)、%s(字符串 )等。
地址要求:变量前加 & 传地址(字符串数组 / 指针例外,因名本身是地址 )。
返回值:成功读入的数据项数,遇文件结束 / 错误返回 EOF 。
作用是让程序运行时接收用户输入,让交互更灵活,搭配 printf 常用(一个输、一个读 )。
需要注意的是 这里还没到指针 输入函数的最后需要加上& 但实际不是&运算 是一个地址的识别

 int i ;printf("请输入数字:");scanf("%d",&i);printf("你输入的数字是:%d",i);

获取控制台输入函数

 char syso[20];gets(syso);printf("%s",syso);
-----------------------------char syso[20];gets(syso);puts(syso);读取 单个字符char c;c = getchar();printf("%c",c);-------------------------------char c;c = getchar();putchar(c);

回文串

#include <stdio.h>
#include <string.h>
int main(void) {char str[64];gets(str);int len = strlen(str),left=0,right=len-1;_Bool flag = 1;while(left < right){if(str[left] != str[right]){flag = 0;break;}left++;right--;}puts(flag?"是的 是你要的回文串":"不对 这不是回文串");
}
---------------------------------------------------
//提供了边界检查函数 比上面的更加稳妥
#include <stdio.h>
#include <string.h>int main(void) {char str[64];fgets(str, sizeof(str), stdin);str[strcspn(str, "\n")] = 0;  // 去除换行符int len = strlen(str), left = 0, right = len - 1;_Bool flag = 1;while (left < right) {if (str[left] != str[right]) {flag = 0;break;}left++;right--;}puts(flag ? "是的 是你要的回文串" : "不对 这不是回文串");return 0;
}
//字符串回文 aba  检查是否是  回文串
#include <stdio.h>
#include <string.h>
int main(void) {char str[64];gets(str);int len = strlen(str),left=0,right=len-1;_Bool flag = 1;while(left < right){if(str[left] != str[right]){flag = 0;break;}left++;right--;}puts(flag?"是的 是你要的回文串":"不对 这不是回文串");
}
//KMP 字符串匹配算法
#include <stdio.h>
#include <string.h>int main(void) {char str1[] = "abababcabb";char str2[] = "ab";int len1 = strlen(str1), len2 = strlen(str2);int next[len2];// 正确计算next数组next[0] = 0;for (int i = 1, j = 0; i < len2; i++) {while (j > 0 && str2[i] != str2[j]) {j = next[j - 1];}if (str2[i] == str2[j]) {j++;}next[i] = j;}// 输出next数组(用于调试)printf("next数组: ");for (int i = 0; i < len2; ++i) {printf("%d ", next[i]);}printf("\n");// KMP匹配过程int i = 0, j = 0;while (i < len1) {if (str1[i] == str2[j]) {i++;j++;} else {if (j != 0) {j = next[j - 1];} else {i++;}}// 当j等于模式串长度时,表示匹配成功if (j == len2) {printf("匹配成功,起始位置: %d\n", i - j);return 0;}}// 循环结束仍未匹配成功printf("匹配失败\n");return 0;
}
http://www.lqws.cn/news/160327.html

相关文章:

  • 使用Python提取照片元数据:方法与实战指南
  • 炫云:为驱动数字视觉产业升级保驾护航
  • 解锁Java线程池:性能优化的关键
  • 八皇后问题深度解析
  • 11 - ArcGIS For JavaScript -- 高程分析
  • 图像分类进阶:从基础到专业 (superior哥AI系列第10期)
  • 窗口聚合窗口聚合
  • 倍福 PLC程序解读
  • NLP驱动网页数据分类与抽取实战
  • Linux(12)——基础IO(下)
  • YOLO在QT中的完整训练、验证与部署方案
  • TIA博途中的程序导出为PDF格式的具体方法示例
  • 系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
  • tcp/udp
  • 网页前端开发(基础进阶4--axios)
  • Neo4j 完全指南:从入门到精通
  • js 比较两个对象的值,不相等就push对象的key
  • 平台升级:新功能与新模型震撼登场!
  • 华硕电脑,全新的超频方式,无需进入BIOS
  • uniapp实现的简约美观的星级评分组件
  • rust或tauri项目执行命令的时候,cmd窗口也会弹出显示解决方法
  • OpenCV 图像通道的分离与合并
  • Windows+Cmake编译Opencv-python
  • 【数据结构】树形结构--二叉树(二)
  • docker 搭建php 开发环境 添加扩展redis、swoole、xdebug(2)
  • Palo Alto Networks Expedition存在命令注入漏洞(CVE-2025-0107)
  • nodejs里面的http模块介绍和使用
  • Ubuntu系统配置C++的boost库(含filesystem模块)的方法
  • ASP.NET Core使用Quartz部署到IIS资源自动被回收解决方案
  • 【.net core】.KMZ文件解压为.KML文件并解析为GEOJSON坐标数据集。附KML处理多线(LineString)闭环问题