读取指定个数的字符,按照要求输出。当指定数目≥32时,出错。

代码如下:

/***********************************************************************

*读取输入直到文件结尾,按照用户指定输出

*-p:原样输出;-u:转为大写;-l转为小写

*

#include

#include

void getInput(char *string, int number);

void toUpper(char *string);

void toLower(char *string);

void showString(const char *string);

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

{

int number;

char string[number];

if(argc > 1){

printf("Please enter the maximum number you want input: ");

scanf("%d", &number);

while('\n' != getchar())

;

getInput(string, number);

switch(argv[1][1]){

case 'p': printf("You choose SHOW IT SELF: \n");

showString(string);

break;

case 'u': printf("You choose TOUPPER: \n");

toUpper(string);

showString(string);

break;

case 'l': printf("You choose TOLOWER: \n");

toLower(string);

showString(string);

break;

default : printf("WRONG!\n");

}

} else

printf("Please enter \"-p\" or \"-l\" or \"-u\" atfer the "

"program name!\nDone!\n");

return 0;

}

void getInput(char *string, int number)

{

int index;

printf("Please enter no more than %d characters:\n", number);

for(index=0; index

string[index] = getchar();

string[index] = '\0';

}

void toUpper(char *string)

{

while(*string){

*string = toupper(*string);

string++;

}

}

void toLower(char *string)

{

while(*string){

*string = tolower(*string);

string++;

}

}

void showString(const char *string)

{

while(*string)

putchar(*string++);

}

上述代码的执行结果:

引用$ ./string.exe -u

Please enter the maximum number you want input: 31

Please enter no more than 31 characters:

women doushi haohaizi, tianzhenlanman de haizi.

You choose TOUPPER:

WOMEN DOUSHI HAOHAIZI, TIANZHEN

$ ./string.exe -u

Please enter the maximum number you want input: 33

Please enter no more than 33 characters:

women doushi haohaizi, tianzhenlanman de haizi.

You choose TOUPPER:

$ ./string.exe -u

Please enter the maximum number you want input: 50

Please enter no more than 50 characters:

women doushi haohaizi, tianzhenlanman de haizi.

You choose TOUPPER:

Segmentation fault (核心已转储)

------解决思路----------------------

/***********************************************************************

*读取输入直到文件结尾,按照用户指定输出

*-p:原样输出;-u:转为大写;-l转为小写

*

*/

#include

#include

void getInput(char *string, int number);

void toUpper(char *string);

void toLower(char *string);

void showString(const char *string);

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

{

int number;

char *string;

if(argc > 1){

while (1)

printf("Please enter the maximum number you want input(1..10000000): ");

fflush(stdout);

rewind(stdin);

number=0;

scanf("%d", &number);

if (1<=number && number<=10000000) break;

}

string=new char[number];

if (NULL==string) return 1;

while('\n' != getchar())

;

getInput(string, number);

switch(argv[1][1]){

case 'p': printf("You choose SHOW IT SELF: \n");

showString(string);

break;

case 'u': printf("You choose TOUPPER: \n");

toUpper(string);

showString(string);

break;

case 'l': printf("You choose TOLOWER: \n");

toLower(string);

showString(string);

break;

default : printf("WRONG!\n");

}

delete[] string;

} else

printf("Please enter \"-p\" or \"-l\" or \"-u\" atfer the "

"program name!\nDone!\n");

return 0;

}

void getInput(char *string, int number)

{

int index;

printf("Please enter no more than %d characters:\n", number);

for(index=0; index

string[index] = getchar();

string[index] = '\0';

}

void toUpper(char *string)

{

while(*string){

*string = toupper(*string);

string++;

}

}

void toLower(char *string)

{

while(*string){

*string = tolower(*string);

string++;

}

}

void showString(const char *string)

{

while(*string)

putchar(*string++);

}

------解决思路----------------------

int number;

if(argc > 1){

printf("Please enter the maximum number you want input: ");

scanf("%d", &number);

char *string = new char[number];

...

...

delete[] string;

------解决思路----------------------

数组大小不能动态变化。

------解决思路----------------------

1楼把你的问题指出来了, 你的 char strings[number]  要动态分配。。你不管传多少,你的字符数组strings的大小在程序启动的时候就已经定死了。

c语言输出指定个数的字符,读取指定个数的字符,依照要求输出。当指定数目≥32时,出错...相关推荐

  1. c语言字母输出什么意思,C语言中字符的输入输出以及计算字符个数的方法详解...

    C语言字符输入与输出 标准库提供的输入/输出模型非常简单.无论文本从何处输入,输出到何处,其输入/输出都是按照字符流的方式处理.文本流是由多行字符构成的字符序列,而每行字符则由 0 个或多个字符组成, ...

  2. C语言fgets()函数(以指定长度读取文件中的字符,并存入字符数组变量中)

    C语言fgets()函数(以指定长度读取文件中的字符,并存入字符数组变量中) 需要引入C 标准库 - <stdio.h> 文章目录 描述 声明 参数 返回值 实例 测试(确实只能读n-1个 ...

  3. C语言文件操作(三)读取指定路径txt文件,并输出文件内容

    #include <stdio.h> #include <stdlib.h> #include <assert.h> int main() {//读取数据int a ...

  4. 用c语言调用Easy X实现图像的输出,附带音乐的读取

    用c语言调用Easy X实现图像的输出,附带音乐的读取 要实现此功能需要用EasyX 目录 用c++调用Easy X实现图像的输出,附带音乐的读取 一.下载VS编译环境和EasyX. 二.vc2010 ...

  5. PHP 读取数据库内容并以二维数组按指定列输出实例

    最新PHP 读取数据库内容并以二维数组按指定列输出实例 以下是三零网为大家整理的最新PHP 读取数据库内容并以二维数组按指定列输出实例的文章,希望大家能够喜欢! <?php $host = &q ...

  6. c语言fgetc()函数(从指定的流 stream 获取下一个字符(一个无符号字符),并把位置标识符往前移动)

    C 标准库 - <stdio.h> 文章目录 描述 声明 参数 返回值 实例 描述 C 库函数 int fgetc(FILE *stream) 从指定的流 stream 获取下一个字符(一 ...

  7. C语言文件操作(二)对指定txt文件中的N个数排序

    #include<stdio.h> #include<stdlib.h> #include<time.h> #include<conio.h> #def ...

  8. C语言编程>第二十一周 ⑥ 请补充main函数,该函数的功能是:从键盘输入一个字符串,即一个指定,然后把这个字符及其后面的所有字符全部删除,结果仍然保存在原串中。

    例题:请补充main函数,该函数的功能是:从键盘输入一个字符串,即一个指定,然后把这个字符及其后面的所有字符全部删除,结果仍然保存在原串中. 例如:输入"1234567",指定字符 ...

  9. R语言使用caret包构建随机森林模型(random forest)构建回归模型、通过method参数指定算法名称、通过ntree参数指定随机森林中树的个数

    R语言使用caret包构建随机森林模型(random forest)构建回归模型.通过method参数指定算法名称.通过ntree参数指定随机森林中树的个数 目录

最新文章

  1. spring包镜像下载地址
  2. 钩子运行机制HOOK
  3. Windows RDP协议 Fuzzing 漏洞挖掘研究
  4. MySQL数据库的基本操作命令
  5. JS面向对象特性和值类型与复合类型
  6. poj2031(prim)
  7. go语言报错:main redeclared in this block
  8. 无法在PC上找到,android app 创建的文件 问题.
  9. python plt 一张图两个y轴,图例legend合并
  10. 操作系统的进程和线程的相关知识的理解
  11. php 工作管理系统,TP-Admin
  12. whta is the前后端分离
  13. EXCEL( 获得指定列的最后一个非空单元格)
  14. 转载 GIS的下个十年(Cary Mann, vice president, Bentley)
  15. 计算机系统建模_包图
  16. ZooKeeper服务-一致性、实现
  17. Axure8有效注册码
  18. SAP中的录屏BDC最贱实践
  19. 2020年中国滚刀行业产销及市场规模分析[图]
  20. 程序员眼中的中国传统文化-王阳明《传习录》29

热门文章

  1. Leaflet 改变坐标原点
  2. python 生成token_python中tokens生成器
  3. 如何通过远程播放将PlayStation 4游戏流式传输到PC或Mac
  4. c语言如何算补码,C语言补码(C语言学习笔记)
  5. 习题7-1 消防车(Firetruck,ACM/ICPC World Finals 1991, UVa208)
  6. 什么是DICOM以及DICOM如何运作
  7. 当代书画名家为奥运加油书画推介展【宋碧梅篇】
  8. 使用EasyExcel导出表单表头-单层表头和多层表头
  9. 【网络】网络基础知识详解
  10. AI图像照片动漫发型3D活化修复处理流量主小程序开发