|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- #include <string.h>
- int main()
- {
- const char* a;
- int i,m = 0,n = 0,p = 0,q = 0;
- printf("请输入:");
- scanf("%s",&a);
- for(i = 0; i < strlen(a); i++)
- {
- if(i >= 65 && i <= 90 &&i >= 97 && i <= 122)
- {
- m += 1;
- }
- else if(i <= 57 && i >= 48)
- {
- n += i;
- }
- else if(i == 32)
- {
- p += 1;
- }
- else
- {
- q += 1;
- }
- }
- printf("letter=%d\nspace=%d\ndigit=%d\nother=%d\n",n,p,m,q);
- return 0;
- }
复制代码
我一改成“for(i = 0; i < strlen(a); i++)”就运行不出来,跑死了...
strlen 一定要用const char* 吗?我记得我以前用char类型也可以跑啊,不知道现在什么情况
题面描述:
如图所示,修罗王和邪狼潜入银行盗走了大量魔法石,并狂妄地留下一行字符,声称魔法石的下落就藏在这行字符中。警探们绞尽脑汁不得其解,只好求助于魔法学院的师生们,经魔法学院师生们研究发现,只要分别统计出这一行字符中的英文字母、空格、数字和其他字符的个数即是被盗魔法石的坐标位置。
thief.png
输入:
一行字符。
输出:
共四行,即各字符数。
示例输入:
aaaaaa 11111 2223www
示例输出:
letter=9
space=2
digit=9
other=0
代码逻辑我就不改了,自己再看看。
语法上要说的是,不管要存什么数据,你都必须得先分配空间。
下面代码的 a[100] 意指为变量a分配了100个字节的空间。
即便你用指针来操作,指针也要指向一块有效的内存空间。
你代码的中
const char* a; 这仅仅是一个指针而已,一个地址。要使用这个指针,得让他指向一块有效的内存空间
如:
char b=[100];
char *a;
a = &b;
- #include <stdio.h>
- #include <string.h>
- int main()
- {
- char a[100];
- int i,m = 0,n = 0,p = 0,q = 0;
- printf("请输入:");
- scanf("%s",&a);
- for(i = 0; i < strlen(a); i++)
- {
- if(a[i] >= 65 && a[i] <= 90 &&a[i] >= 97 && a[i]<= 122)
- {
- m += 1;
- }
- else if(a[i] <= 57 && a[i] >= 48)
- {
- n += 1;
- }
- else if(a[i] == 32)
- {
- p += 1;
- }
- else
- {
- q += 1;
- }
- }
- printf("letter=%d\nspace=%d\ndigit=%d\nother=%d\n",n,p,m,q);
- return 0;
- }
复制代码
|
|