| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 595 人关注过本帖
标题:字符串数组问题
只看楼主 加入收藏
Sheldon
Rank: 1
等 级:新手上路
帖 子:21
专家分:8
注 册:2010-6-2
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
字符串数组问题
假如我定义一个字符串数组,char name[12],用gets(name)来输入,要求输入6-12位数字,字母或者下划线,如何来实现?
搜索更多相关主题的帖子: 字符 
2010-06-15 14:44
小鱼漂流
该用户已被删除
收藏
得分:2 
提示: 作者被禁止或删除 内容自动屏蔽
2010-06-15 18:55
DePrince
Rank: 2
等 级:论坛游民
帖 子:13
专家分:35
注 册:2010-6-14
收藏
得分:2 
仅仅是输入和输出问题吗?
#include"stdio.h"
#include"string.h"
#define N 12

void string(length)
{
if(length>12)
  printf("Error\n");
else
  printf("the array = %s",a);
}
void main()
{
char name[N];
int l;
gets(name);
l=strlen(name);

string(l);
}

没编译过,自己试一试,呵呵
2010-06-15 19:18
BJ_BOY
Rank: 4
等 级:业余侠客
威 望:1
帖 子:77
专家分:225
注 册:2010-2-4
收藏
得分:12 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

#define LEN 12

int main(void)
{
   char name[LEN];
   int i = 0, len = 0;
   while(1)
   {  
      len = 0;
      printf("请输入name:");
      gets(name);
      if(strlen(name) >= LEN)
      {
          printf("你输入的字符串过长!\n");
          continue;                          
      }
      
      /*检查输入的字符串是否合法*/
      for(i = 0; i < strlen(name); ++i)
      {  
         if(isdigit(name[i]) || isalpha(name[i]) || name[i] == '_')
         {
             len++;  
         }
         else
         {
             printf("字符串中仅允许有数字、字母及下划线!\n");
             break;
         }
      }

      if(len == strlen(name)) /*如果通过检验的字符数与字符串长度相等,则输入的符合要求!*/
      {
          break; /*符合要求则退出循环,否则继续要求输入*/
      }
   }
   
   printf("你刚才输入的是:%s\n", name);
   
   system("pause");
   return 0;
}

2010-06-15 20:06
z9895512
Rank: 2
等 级:论坛游民
帖 子:24
专家分:43
注 册:2010-6-3
收藏
得分:0 
只能通过判断长度来实现。别无他法!楼上两位写的都行~
2010-06-15 20:19
huxiangwenhu
Rank: 4
等 级:业余侠客
威 望:1
帖 子:191
专家分:262
注 册:2010-6-1
收藏
得分:2 
回复 3楼 DePrince
#include"stdio.h"
#include"string.h"
#define N 12

string(int length)
{
if(length>12)
  printf("Error\n");
else
  printf("the array =");
return;
}
void main()
{
char name[N];
int l;
gets(name);
l=strlen(name);
string(l);
puts(name);
}
2010-06-15 22:23
陛下
Rank: 2
来 自:南宁
等 级:论坛游民
帖 子:62
专家分:90
注 册:2010-5-15
收藏
得分:2 
回复 6楼 huxiangwenhu
还差一点哦
是6~12哦
#include"stdio.h"
#include"string.h"
#define size 12
void main()
{
char name[size];
int l;
gets(name);
l=strlen(name);
if(l>12||l<6)
puts("Date Error!!");
else
puts(name);
}
2010-06-15 23:02
快速回复:字符串数组问题
数据加载中...
 
   



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

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