展开全部

#include

#include

#include

#define STRLEN 100

void ifree(char**p,int i);

int CheckAndChange(char*p);

int main()

{

int T;/*样例个数*/

int i;/*循环参数*/

char**p=NULL;/*指针p指向的内存空间62616964757a686964616fe59b9ee7ad9431333431353338存放指向各个字符串的指针*/

scanf("%d\n",&T);/*读取T*/

if((p=malloc(T*sizeof(char*)))==NULL)

{

printf("malloc p fail!\n");

return-1;

}

for(i=0;i<T;i++)

{

if((*(p+i)=malloc((STRLEN+1)*sizeof(char)))==NULL)

{

printf("malloc p+%d fail!\n",i);

ifree(p,i);/*释放之前分配的空间*/

free(p);/*释放p*/

return-1;

}

gets(*(p+i));

}

for(i=0;i<T;i++)

{

if(CheckAndChange(*(p+i))>0)/*判断是否都是大写字符,如果是,则变成小写*/

{

printf("%s\n",*(p+i));

}

else

{

printf("string%d contains incorrect character!\n",i+1);

}

}

ifree(p,T);

free(p);

return 0;

}

void ifree(char**p,int i)

{

int j;

for(j=0;j<i;j++)

{

free(*(p+j));

}

}

int CheckAndChange(char p)

{

int i;

for(i=0;i<strlen(p);i++)

{

if(((p+i)>='A')&&(*(p+i)<='Z'))

{

*(p+i)+='a'-'A';

}

else

{

return-1;

}

}

return 1;

}

扩展资料:

return是C++的关键字,它提供了终止函数执行的一种方式。当return语句提供了一个值时,这个值就成为函数的返回值.

说到return,有必要提及主函数的定义,下面是从网络上找到的资料,好好消化吧,对了解主函数中返回值的理解有很大的帮助.

很多人甚至市面上的一些书籍,都使用了void main(),其实这是错误的。C/C++中从来没有定义过void main()。C++之父Bjarne Stroustrup

在他的主页上的FAQ中明确地写着The definition void main(){/*...*/}is not and never has been C++,nor has it even been C.(void main()从来就不存在于C++或者C)。

1.C

在C89中,main()是可以接受的。Brian W.Kernighan和Dennis M.Ritchie的经典巨著The C programming Language 2e(《C程序设计语言第二版》)用的就是main()。不过在最新的C99标准中,只有以下两种定义方式是正确的:

int main(void)

int main(int argc,char*argv[])

(参考资料:ISO/IEC 9899:1999(E)Programming languages—C 5.1.2.2.1 Program startup)

当然,我们也可以做一点小小的改动。例如:char*argv[]可以写成char**argv;argv和argc可以改成别的变量名(如intval和charval),不过一定要符合变量的命名规则。

如果不需要从命令行中获取参数,请用int main(void);否则请用int main(int argc,char*argv[])。

main函数的返回值类型必须是int,这样返回值才能传递给程序的激活者(如操作系统)。

如果main函数的最后没有写return语句的话,C99规定编译器要自动在生成的目标文件中(如exe文件)加入return 0;,表示程序正常退出。不过,我还是建议你最好在main函数的最后加上return语句,虽然没有这个必要,但这是一个好的习惯。

注意,vc6不会在目标文件中加入return 0;,大概是因为vc6是98年的产品,所以才不支持这个特性。现在明白我为什么建议你最好加上return语句了吧!不过,gcc3.2(Linux下的C编译器)会在生成的目标文件中加入return 0;。

参考资料:

python 第一行包含一个整数n、表示行数_输入 第一行输入一个整数n(1 = n = 100)表示测试样例个数 接下来n行,一...相关推荐

  1. java中计算一个文件的总字节数_【JVM故事】一个Java字节码文件的诞生记

    作者:李新杰·转自微:信公众号"编程新说" 万字长文,完全虚构.(12000字) (一) 组里来了个实习生,李大胖面完之后,觉得水平一般,但还是留了下来,为什么呢?各自猜去吧. 李 ...

  2. python输出a以内能被b整除的数_求一个数是否可以被输入数整除

    给定两个数a和b,我们必须找到可被a或b整除的第n个数 格式如下: 输入: 第一行由一个整数T组成,表示测试用例的数量. 第二行包含三个整数a.b和N 输出: 对于每个测试用例,打印第n个 换行中的数 ...

  3. 一个域名使用多个服务器_如何使用linuxgsm搭建一个求生之路服务器

    搭建linuxgsm托管的求生之路2服务器 我使用的是Linux系统来跑求生之路2服务器端,因此使用了Linux上一个专门用于搭建游戏服务端的软件:Linux Game Server Managers ...

  4. 一个springboot能支持多少并发_多少彩礼能娶一个西安女孩?

    作家毛姆曾说过:"爱情是世界转动的齿轮,而金钱则是那轴上的润滑油".爱情世界总是纯粹的,但当升级到婚姻的阶段,便必然会与金钱相关,而婚姻中第一个需要面对的金钱问题便是--彩礼. 可 ...

  5. java写一个外网访问的接口_【JAVA基础】一个案例搞懂类、对象、重载、封装、继承、多态、覆盖、抽象和接口概念及区别(中篇)...

    0 前言 初学JAVA时,总会对一些概念一知半解,相互混淆,不明其设计的用意,如类.对象.重载.封装.继承.多态.覆盖.抽象类.接口概念.为便于理解和巩固,本文将基于一个案例及其变形,展现各个概念的定 ...

  6. 一个报文的路由器之旅_【NE探秘】一个报文的路由器之旅

    什么是二层桥接转发? 二层所指的是数据链路层.二层桥接转发,是指数据帧在数据链路层是怎样被转发的. 数据链路层有很多不同的网络类型,Token ring(令牌环网).Ethernet.FDDI(光纤网 ...

  7. 如何用python显示出所有能被17整除的数_怎样判定一个数能被17整除

    题目: 怎样判定一个数能被17整除 解答: 割法判定数的整除性 百以内的25个质数:2.3.5.7.11.13.17.19.23.29.31.37.41.43.47.53.59.61.67.71.73 ...

  8. Java整数转换一次最大_在Java中以美分(整数)转换美元(大十进制)的最佳方法是什么?...

    最简单的包括我的要点如下: public static int usdToCents(BigDecimal usd) { return usd.movePointRight(2).intValueEx ...

  9. python计算第n个斐波那契数_计算第n个斐波那契数

    方法一:传统递归法 时间复杂度O(2^n),空间复杂度O(n) 计算Fibonacci(10)十次平均用时0.0003s    计算Fibonacci(100)单次用时大于1min 时间复杂度极高,当 ...

最新文章

  1. 我写代码的十八般兵器!
  2. 【大牛疯狂教学】java程序员大专找不到工作
  3. mysql安装提示create_MySQL5.1安装时出现Cannot create windows service for mysql.error:0
  4. 从汉诺塔讲递归的思考方式
  5. Socket SSL通讯
  6. ORA-00910: specified length too long for its datatype
  7. ORACLE RAC 中 SRVCTL 命令详细说明
  8. windows下kafka源码阅读环境搭建
  9. 刘世锦:引入区块链等相关技术建立政府、企业和个人的绿色责任账户
  10. 使用oracle客户端与PLSQL连接ORACLE数据库软件安装过程
  11. 【JavaScript高级程序设计】--第1章 JavaScript简介
  12. 教育中的“产出/产能平衡”原则
  13. unity2019汉化
  14. Mentor软件盗版
  15. 设置foxmail通过ccproxy代理收发邮件
  16. 用diskpart恢复U盘
  17. 背单词App开发日记3
  18. 高线测径仪精密测量已实现全面的检测
  19. 看了几个技术入股的帖子,忍不住写个自己亲身经历吧
  20. linux虚拟机按键不好用,虚拟机(vmware)linux中ctrl按键失灵 解决办法

热门文章

  1. 今日头条面试题,供大家参考
  2. 《大学“电路分析基础”课程实验合集.实验四》丨线性电路特性的研究
  3. PS问题汇总2017
  4. 项目异常Too many open files
  5. 计算机里面的固态硬盘,怎么判断电脑里面的是不是固态硬盘?
  6. word 宏命令批量把当前文件夹下的doc另存为docx格式
  7. SPD查看内存默认频率
  8. 卡内基·梅隆大学计算机科学系主任周以真的父母是中国人吗,计算机与计算思维...
  9. 计算机在神经生物学中的应用,计算机视觉技术的应用论文
  10. javaweb项目实训总结_JAVAWEB实训心得体会