| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 296 人关注过本帖
标题:关于s++问题
只看楼主 加入收藏
kechujian
Rank: 1
等 级:新手上路
帖 子:22
专家分:5
注 册:2011-3-17
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:2 
关于s++问题
求空格,大写,小写,数字各有几个
#include<stdio.h>
#include<stdlib.h>
#define N 100
void main()
{
    char*p=(char*)malloc(N*sizeof(char));
    int num=0,space=0,up=0,low=0,other=0;
    printf("input the string:");
    gets(p);
    for(;*p!='\0';p++)
    {
        if((*p>='0')&&(*p<='9'))
            num++;
        else if(*p==' ')
            space++;
        else if((*p>='A')&&(*p<='Z'))
            up++;
        else if((*p>='a')&&(*p<='z'))
            low++;
        else
            other++;
    }
    printf("num=%d,space=%d,up=%d,low=%d,other=%d\n",num,space,up,low,other);
}
为什么char*p...不能换成p[N];
#include<stdio.h>
#include<stdlib.h>
#define N 100
void main()
{
    char p[N];
    int num=0,space=0,up=0,low=0,other=0;
    printf("input the string:");
    gets(p);
    for(;*p!='\0';p++)
    {
        if((*p>='0')&&(*p<='9'))
            num++;
        else if(*p==' ')
            space++;
        else if((*p>='A')&&(*p<='Z'))
            up++;
        else if((*p>='a')&&(*p<='z'))
            low++;
        else
            other++;
    }
    printf("num=%d,space=%d,up=%d,low=%d,other=%d\n",num,space,up,low,other);
}
错误: error C2105: '++' needs l-value
搜索更多相关主题的帖子: include 
2011-04-07 20:53
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:10 
因为
char p[N];

定义 p 为数组,而非指针,因此 p 并非变量名。 p++ 自然是非法的
for (; *p != 0; p++)

改成
for (i = 0; p[i] != 0; i++)

即可

[ 本帖最后由 voidx 于 2011-4-7 21:27 编辑 ]
2011-04-07 21:24
kechujian
Rank: 1
等 级:新手上路
帖 子:22
专家分:5
注 册:2011-3-17
收藏
得分:0 
不是很正确,刚刚在书里找到了,p是地址常量(地址即指针),所以p++无法实现

[ 本帖最后由 kechujian 于 2011-4-7 21:32 编辑 ]
2011-04-07 21:31
快速回复:关于s++问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023380 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved