c语言,字符型常量太长是怎么回事,望帮解释下

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言,字符型常量太长是怎么回事,望帮解释下相关的知识,希望对你有一定的参考价值。

#include <stdio.h> int abc_num,num_num,kong_num,other_num; void tongji(char str[]); main () static char cstr[100]=""; printf("输入一个字符串:");scanf("%s",&cstr); tongji(cstr); printf("有%d个字母\n",abc_num); printf("有%d个数字\n",num_num); printf("有%d个空格\n",kong_num); printf("有%d个其它字符",other_num); getch(); void tongji(char str[]) int str_len,i; str_len=strlen(str); for (i=0;i<str_len;i++) /* 统计前三个项 */ if (str[i]>='0' && str[i]<='9') num_num+=1; if ((str[i]>='A" && str[i]<='Z') || (str[i]>='a' && str[i]<='z')) abc_num+=1; /* 这一句说什么字符型常量太长是怎么回事 */ if (str[i]==' ') kong_num+=1; /* 统计非字母非数字非空格的字符 */ other_num=str_len-abc_num-num_num-kong_num;

参考技术A printf("输入一个字符串:");scanf("%s",&cstr);
==>>
printf("输入一个字符串:");scanf("%s",cstr);
cstr已经是一个数组(被编译为指针),不需要在前面加上&.加了&,导致输入的信息没有写到cstr中,即cstr中的信息为垃圾信息....

c语言运行到一半出现error是怎么回事呢?

参考技术A

C语言程序运行出现exe停止工作的原因是因为内存溢出和编译器错误。

第一种:内存溢出

内存溢出(out of memory)通俗理解就是内存不够,程序所需要的内存远远超出了主机内安装的内存所承受大小,就叫内存溢出。系统会提示内存溢出,有时候会自动关闭软件,重启电脑或者软件后释放掉一部分内存又可以正常运行该软件。

第二种:编译器错误

部分编译器由于所使用的标准不同(例如在一台机器上使用的可能是C99标准,而另一台机器上使用的是C11标准),或是因为编译器链接库的损坏,在少数情况下也可能导致程序出现不限于崩溃退出的异常错误,通常解决方法是到编译器官方网站下载最新版的IDE安装。

举例说明:

1、除以零。

2、数组越界:int a[3]; a[10000000]=10。

3、指针越界:int * p; p=(int *)malloc(5 * sizeof(int)); *(p+1000000)=10。

4、使用已经释放的空间:int * p; p=(int *)malloc(5 * sizeof(int));free(p); *p=10。

5、数组开得太大,超出了栈的范围,造成栈溢出:int a[100000000],没有开辟内存 List L=(List)malloc(sizeof(struct LNode))。runtime  error (运行时错误)就是程序运行到一半,程序就崩溃了。

扩展资料:

C特有特点:

1、C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。

2、C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。

3、不同的变量类型可以用结构体(struct)组合在一起。

4、只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。

5、部份的变量类型可以转换,例如整型和字符型变量。

6、通过指针(pointer),C语言可以容易的对存储器进行低级控制。

7、预编译处理(preprocessor)让C语言的编译更具有弹性。

参考资料:C语言-百度百科

以上是关于c语言,字符型常量太长是怎么回事,望帮解释下的主要内容,如果未能解决你的问题,请参考以下文章

C语言字符串打印出现特殊字符是怎么回事?请问如何解决这个问题?

C语言 字符变量在最高位的符号问题 谁帮我解释下标准ASCII码(0-127)和非标准(128-

标准AscⅡ字符

c语言编程中字符串复制函数编程程序出现错误,这是怎么回事?

怎么进行字符串赋值?C语言

C语言如何实现两个非常量的CHAR字符串连接