strcmp

c语言数字转字符串

落花浮王杯 提交于 2020-03-01 01:43:13
对下面代码的一些细节,解释下为什么那么做。 1. char buf[sizeof(int) * 8 + 1] = ""; 这个buf的作用是缓存中间结果,长度没有写死。好处是不同的平台上这段代码都可以执行。 2. if (base < 2 || base > 36) 该判断检查用户传入的进制数是否合法。base < 2 主要过滤负数和0和1。base > 36的意义是在超过10进制的数里,是用字母a表示10的。以此类推z可以表示36。在只使用ascii字符表示大于10的数时,最大的表示值是36,超过这个值就不能表示。 3. uval = -val; 这各写法可以避免一个潜在的坑。当val为int值为INT_MIN时 -val会溢出。表象为-val 的值还是INT_MIN,还是个负数 4.至于为什么用一个无符号整数与一个>0的int进行整除与取余 uval % base uval /= base 因为c语言的标准里没有规定x / y当有一个值为负数时,结果该向x坐标轴的左侧靠近(向0取整) 还是向侧靠近(负无穷) 它只规定了 (x / y) * y + (x % y) = x -14 /5 的结果可以是 -2 或者 -3 至为正数为啥没有两个结果。本人只是用了几个值进行了验证。。 好了贴代码: #include <stdio.h> #include <limits.h>

PAT笔记

删除回忆录丶 提交于 2020-02-28 03:09:47
以下内容来源于柳神 《PAT | 蓝桥 | LeetCode学习路径 & 刷题经验》 文章中的部分内容,仅供自己学习使用。若有能帮助到大家的请移步到柳神的博客查阅原版。侵删! dev中查看 vector 的值: *(&v[0])@3 ——必须对 v[0] 变换,先取地址再取值, @ 后⾯的数字 3 能让dev显示数组前3个的值,在⽤这个之前要先在编译选项-编译器⾥⾯ -std=C++11 INT_MAX 、 INT_MIN 、 LLONG_MAX 在 #include <climits> 头⽂件⾥⾯, int最⼤值为2147483647,共10位数字; LLONG_MAX 最⼤值有19位数字,以9开头。所以说储存13位的学号可以⽤ long long int ,输出的时候使⽤ %013lld 对 char c[15] 进行 sort 排序的 cmp(char a[], char b[]) 函数要这样写: strcmp(a, b) < 0 ,因为 strcmp 返回的不是 -1 0 1 ⽽是 等于0 ⼩小于0 ⼤大于0 的某个值, strcmp 在头⽂文件 #include <string.h> ⾥⾯ 对 vector v 或者 string v 进行 sort 排序: sort(v.begin(), v.end(), cmp1); ;对数组a进⾏sort排序: sort(a, a

词法分析(自己的想法)

偶尔善良 提交于 2020-02-27 03:20:35
#include<stdio.h> #include<string.h> #define N 30 char str[N]={NULL},st[N]={NULL}; int t=0,t1=0; struct node//定义一个队列 { char data; struct node * next; }; typedef struct node QueueNode; struct node2//定义一个链队列 { QueueNode *front; QueueNode *rear; }; typedef struct node2 Queue; void Print(char str[]); void Print1(char str1[]); Queue InitQueue()//初始化队列 { Queue Q; Q.front=(QueueNode *)malloc(sizeof(QueueNode)); Q.front->next=NULL; Q.rear=Q.front; return(Q); } Queue InserQ(Queue Q,char x)//x进队列 { QueueNode *p; p=(QueueNode *)malloc(sizeof(QueueNode)); p->data=x; p->next=NULL; Q.rear->next=p; Q.rear=p;

POJ 2121

时光怂恿深爱的人放手 提交于 2020-02-24 13:14:06
Inglish-Number Translator Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5162 Accepted: 2027 Description In this problem, you will be given one or more integers in English. Your task is to translate these numbers into their integer representation. The numbers can range from negative 999,999,999 to positive 999,999,999. The following is an exhaustive list of English words that your program must account for: negative, zero, one, two, three, four, five, six, seven, eight, nine, ten, eleven, twelve, thirteen, fourteen, fifteen, sixteen, seventeen, eighteen, nineteen, twenty, thirty,

php广告显示设置存放记录的目录代码

时光毁灭记忆、已成空白 提交于 2020-02-22 12:54:30
<?php #########随机广告显示########## function myads(){ $dir="ads"; #设置存放记录的目录 //$dir="ads"; #设置存放记录的目录 $ads="$dir/ads.txt"; #设置广告代码文件 $log ="$dir/ads.log"; #设置ip记录文件 $ads_lines=file($ads); $lines=count($ads_lines);#文件总行数 ####读出广告总数$ads_count和显示次数到数组$display_array######## $ads_count=0; $display_count=0; for ($i=0;$i<$lines;$i++){ if((!strcmp(substr($ads_lines[$i],0,7),"display"))){ $ads_count+=1; $display_array[$ads_count]=substr($ads_lines[$i],8); $display_count+=$display_array[$ads_count]; } 2881064151} ####决定随机显示序号$display_rand##### srand((double)microtime()*1000000); $display_rand = rand(1,

MATLAB遍历文件夹及其子文件夹,读取多幅相关图像画图

 ̄綄美尐妖づ 提交于 2020-02-17 12:00:28
问题描述: 4个模态的nii数据以及其中三个模态对应的mask,每个模态的数据维度均为121*145*121,现按照Z方向,将每个模态的121层都利用ITK-SNAP保存为png格式,总共有18个受试者。为了展示每个受试者、每个模态的数据情况,想每人每模态抽取对应的5层,贴在PPT里,总共需要 18 * 7 * 5 = 630 张图片,如果手动粘贴复制将非常繁琐,故利用MATLAB实现这一过程。 数据保存格式: MATLAB代码: clear;clc;close all DirData = 'C:\Users\Desktop\load_code\data_summary'; Modalityinfo=dir(fullfile(DirData,'*')); ModalityName={Modalityinfo.name}'; %% input the selected slice number for each subject SliceNum = { '050','055','060','065','070';%10 '040','047','054','061','068';%31 '046','054','061','068','076';%36 '042','046','052','061','066';%47 '046','059','068','075','079';

面向对象程序设计寒假作业3

天涯浪子 提交于 2020-02-16 21:59:01
这个作业属于哪个课程 2020面向对象程序设计 这个作业要求在哪里 面向对象程序设计寒假作业3 这个作业的目标 1、继续完成编程题2、发布博客 我的GitHub仓库 仓库 (还没有弄懂GitHub的上传方法,所以这次的代码没有上传到我之前的仓库地址里) 上面我把我的仓库地址挂出来,虽然仓库还是空的(可能之后会传上去) 编程题(请使用C语言或者C++完成以下题目): 1、继续完成作业二的编程题。 2、优化架构,思考代码的拓展性,比如我需要增加其他功能,如选择,循环语句怎么办。 3、思考:可以参考现有的编程语言,把这些语言的内容加入。如选择、循环语句、函数、或者扩大数字范围,支持负数等。 在思考代码的拓展性时,发现原代码中实现输出部分存在一些bug,如: 1、输出三十、四十等整十数时,存在末尾错输出为三十零、四十零的情况,输出整百时也有这种情况。 2、输出小于十一的正整数时,有数字前多输出零的情况。 所以将输出部分改写如下,还顺带添加了输出结果为负数的功能。 void output(int num) { int x,y,z; if(num<0) { num=-num; printf("负"); } z=num%10; y=num%100/10; x=num/100; if(x!=0) { outputchange(x); printf("百"); } if(y!=0) {

面向对象程序设计寒假作业3

大城市里の小女人 提交于 2020-02-16 21:56:46
这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/2020OOP 这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/2020OOP/homework/10288 这个作业的目标 1.继续完成作业二的编程题。 2.优化架构,思考代码的拓展性 3.或者扩大数字范围,支持负数 4.编译代码 5.测试代码 6.作业上传仓库 作业正文 https://www.cnblogs.com/Sweetxinxin/p/12316634.html 其他参考文献 https://www.cnblogs.com/sddai/p/10249243.html https://www.cnblogs.com/hclw/p/9560442.html https://wenda.so.com/q/1365038777067506 仓库地址 https://github.com/Sweetxinxin/winter-vocation-homework-3 Part 1 第二次作业完善 a.编译脚本 经过询问同学查找资料第二次作业得到了有效解决 关于编译脚本的路径问题,通过配置gcc环境及在控制面板中找到高级选项环境变量的path中添加gcc的路径 找到名为ComSpec的系统变量,查看是否是 :“%SystemRoot%

寒假作业三

匆匆过客 提交于 2020-02-16 10:41:51
面向对象程序设计寒假作业3 这个作业属于哪个课程 2020年面向对象程序设计 这个作业要求在哪里 寒假作业三 作业正文 寒假作业3 这个作业的目标 1.继续完成作业二的编程题,优化代码 2. 思考一个代码的延展性 编程题 继续完成作业二的编程题。 优化架构,思考代码的拓展性,比如我需要增加其他功能,如选择,循环语句怎么办。 思考:可以参考现有的编程语言,把这些语言的内容加入。如选择、循环语句、函数、或者扩大数字范围,支持负数等。 优化代码 将之前的代码做了一些优化,把错误分析单独独立为一个函数模块,并且完善了错误分析,从数据类型,数据范围,运算操作和初始化四个角度报错。用error函数,按照不同的参数输出不同的错误提示。 void error(int n) { if(n==1) printf("只支持整数数据\n"); if(n==2) printf("运算操作错误,仅支持增加或减少\n"); if(n==3) printf("数据超出范围,仅支持0-99内数据\n"); if(n==4) printf("未初始化\n"); } 我新加入了负数的计算,使程序范围由0-99变为-99-99.通过读入数据时判断第一个汉字是否为“负”,因为我们平常习惯说到负数时,第一个字一定是“负”。然后开一个字符数组minus存储符号,如果有“负”则执行函数exchange1。 int main()

面向对象程序设计寒假作业3

拥有回忆 提交于 2020-02-16 09:07:50
这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/2020OOP 这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/2020OOP/homework/10288 这个作业的目标 1. 继续完成编程题并制作测试 作业正文 1编程题 仓库地址 https://github.com/chen1357/homework 参考文献 https://blog.csdn.net/yjx4102/article/details/79319305 一、编程题 1.扩大数字范围 (1)增加负数范围 在“ 整数 ”运算过程中出现负数时不再报错,而是继续运算,同时输入与输出都可以是负数。同时新增加了“ 自然数 ”,若初始输入“ 自然数 ”,如果运算出现负数则报错。 初始值输入的判断进行了修改。 scanf("%s%s%s%s",a,b,c,d); if(strcmp(a,"整数")!=0&&strcmp(a,"自然数")!=0) { printf("输入有误,请重新输入\n"); continue; } 在运算过程中的判断也进行了修改。 if (sum<k && strcmp(a,"自然数")==0) printf("%s不能为负值,请重新输入\n",b); else sum -= k;; 并且在输出的函数中增加了这一部分。