| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 751 人关注过本帖
标题:问下数组及字符串的输入!!望解答!
只看楼主 加入收藏
雪山的猫
Rank: 1
等 级:新手上路
帖 子:44
专家分:5
注 册:2012-12-23
结帖率:95.24%
收藏
已结贴  问题点数:20 回复次数:14 
问下数组及字符串的输入!!望解答!
我最近看谭浩强的c语言书,我发现对于数组(字符串)的输入必须先定义其大小才可以!。
    问题来了,我想实现输入任意(长度和内容)的数或字符,并输出它以及计算出字符长度(不包含空的字符,实际占位长度)。例:输入“fdsfsfsd”;输出“fdsfsfsd, strlen (a)=8”.此程序还可以实现 输入:“fdfdf”;输出:“fdfdf, strlen (a)=5”.
我是看完他书都不知道该如何去实现,希望大家帮下我!!!谢谢了!
搜索更多相关主题的帖子: 字符串 fdfdf 如何 
2013-01-21 11:07
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:0 
用指针

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-01-21 11:08
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
1、你可以把数组弄大一点。
2、用malloc

My life is brilliant
2013-01-21 11:49
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:0 
可以分段存储嘛,比如用链表
随便举个例子
比如先在链表中增加一个char[10],读最多10个字符,如果还没借宿,再在链表中增加一个char[10],读接下来的10个字符……

不过,C语言的标准库太少,这些都得自己写
2013-01-21 12:04
雪山的猫
Rank: 1
等 级:新手上路
帖 子:44
专家分:5
注 册:2012-12-23
收藏
得分:0 
楼上的,我很感谢你们来围观,但我还是要说些件事:
  第一,这不是题,是我自学时突发的想法。
  第二,对于数组的定义,如:char[10],那你输入的字符只要在十以内,strlen[a]永远是等于10的。无法达到我列的例子上的效果。
  第三,指针我有想过,但不知如何实现。所以才发帖求解答!!!
2013-01-22 11:18
globc
Rank: 2
等 级:论坛游民
帖 子:15
专家分:12
注 册:2013-1-20
收藏
得分:0 
C语言里用动态分配内存的链表可以基本实现,楼主注意strlen和sizeof的区别。
2013-01-22 13:18
XQwindow
Rank: 2
等 级:论坛游民
帖 子:121
专家分:64
注 册:2013-1-1
收藏
得分:0 
额,试了试,不会

我不知道我能否当程序员,但我依然热爱编程!
2013-01-22 13:30
schenxi
Rank: 1
等 级:新手上路
帖 子:3
专家分:7
注 册:2013-1-21
收藏
得分:5 
大概意思就是下面这样,想要完善自己追加语句吧

#include <stdio.h>
#include <string.h>
int main(void)
{
    char *ch;
    while(gets(ch)!=NULL&&ch[0]!='\0')
        printf("the length is %d\n",strlen(ch));
    return 0;
}
2013-01-22 13:38
魍丶紫
Rank: 2
来 自:浙江台州
等 级:论坛游民
帖 子:6
专家分:21
注 册:2013-1-19
收藏
得分:5 
额 首先6楼说的没错 楼主要知道strlen和sizeof的区别
至于malloc 是指程序员申请在静态区的大小为(这个可以让用户定)的空间

#include<stdio.h>
#include<stdlib.h>//malloc函数是在stdlib.h库里的
int main(){
    int n;
    char*p;
    printf("输入字符串长度");
    scanf("%d",&n);
    p=(char*)malloc(sizeof(char)*(n+1));//多出来的1是为了存放'\0'
    printf("输入字符串");
    scanf("%s",p);
    printf("%s strlen(a)=%d",p,n);
    free(p);//最后要记得释放空间 因为这块空间是在静态区域的 而且是程序员自己申请的 所以也要自己释放
}
不过用malloc还是和楼主的要求有些不符 因为它必须要先知道字符串有多大
所以就我所学 还是定义一个较大的数组比较符合要求

红颜色  我已没有勇气问你 离开的理由
2013-01-22 13:52
青春无限
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江苏
等 级:贵宾
威 望:24
帖 子:3452
专家分:19340
注 册:2012-3-31
收藏
得分:0 
支持

学 会看代码…学习写程序…学会搞开发…我的目标!呵呵是不是说大话啊!!一切皆可能
2013-01-22 14:29
快速回复:问下数组及字符串的输入!!望解答!
数据加载中...
 
   



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

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