精华内容
下载资源
问答
  • //ps指针指向字符串下一个字符 } digit[i] = '\0'; //为了能用%s输出,digit在末尾要加一个结束字符'\0' printf("%s\n", digit); ```) `` ``` **如果要传递m,n,o,q多个整形数据呢? ** 以下是我...
  • 时间限制: 1.0s 内存限制: ...这些字符串中的第一个为该命令行工具的名字,由小写字母组成,你的程序不用对它进行处理。在工具名字之后可能会包含若干选项,然后可能会包含一 些不是选项的参数。 ...
    时间限制:1.0s
    内存限制:256.0MB
    问题描述:

    问题描述

      请你写一个命令行分析程序,用以分析给定的命令行里包含哪些选项。每个命令行由若干个字符串组成,它们之间恰好由一个空格分隔。这些字符串中的第一个为该命令行工具的名字,由小写字母组成,你的程序不用对它进行处理。在工具名字之后可能会包含若干选项,然后可能会包含一 些不是选项的参数。
      选项有两类:带参数的选项和不带参数的选项。一个合法的无参数选项的形式是一个减号后面跟单个小写字母,如"-a" 或"-b"。而带参数选项则由两个由空格分隔的字符串构成,前者的格式要求与无参数选项相同,后者则是该选项的参数,是由小写字母,数字和减号组成的非空字符串。
      该命令行工具的作者提供给你一个格式字符串以指定他的命令行工具需要接受哪些选项。这个字符串由若干小写字母和冒号组成,其中的每个小写字母表示一个该程序接受的选项。如果该小写字母后面紧跟了一个冒号,它就表示一个带参数的选项,否则则为不带参数的选项。例如, "ab:m:" 表示该程序接受三种选项,即"-a"(不带参数),"-b"(带参数), 以及"-m"(带参数)。
      命令行工具的作者准备了若干条命令行用以测试你的程序。对于每个命令行,你的工具应当一直向后分析。当你的工具遇到某个字符串既不是合法的选项,又不是某个合法选项的参数时,分析就停止。命令行剩余的未分析部分不构成该命令的选项,因此你的程序应当忽略它们。

    输入格式

      输入的第一行是一个格式字符串,它至少包含一个字符,且长度不超过 52。格式字符串只包含小写字母和冒号,保证每个小写字母至多出现一次,不会有两个相邻的冒号,也不会以冒号开头。
      输入的第二行是一个正整数 N(1 ≤ N ≤ 20),表示你需要处理的命令行的个数。
      接下来有 N 行,每行是一个待处理的命令行,它包括不超过 256 个字符。该命令行一定是若干个由单个空格分隔的字符串构成,每个字符串里只包含小写字母,数字和减号。

    输出格式

      输出有 N 行。其中第 i 行以"Case i:" 开始,然后应当有恰好一个空格,然后应当按照字母升序输出该命令行中用到的所有选项的名称,对于带参数的选项,在输出它的名称之后还要输出它的参数。如果一个选项在命令行中出现了多次,只输出一次。如果一个带参数的选项在命令行中出 现了多次,只输出最后一次出现时所带的参数。

    样例输入

    albw:x
    4
    ls -a -l -a documents -b
    ls
    ls -w 10 -x -w 15
    ls -a -b -c -d -e -l

    样例输出

    Case 1: -a -l
    Case 2:
    Case 3: -w 15 -x
    Case 4: -a -b

    C++写就用map,很妥;小心python里判断里有数组越界会直接崩。。。

    def judge(str):
        for i in str:
    	    if not (i.isdigit() or i.islower() or i=='-'):
    		    return False
        return True
    
    while True:
    	try:
    	    cmd = input()
    	    n = int(input())
    	    leng = len(cmd)
    	    cmd1=[]
    	    cmd2=[]
    	    cmd+=" "
    	    for i in range(len(cmd)-1):
    		    if(cmd[i+1]==':'):
    			    cmd1.append(cmd[i])#有参
    		    elif(cmd[i]!=':'):
    			    cmd2.append(cmd[i])#无参选项
    	    for k in range(n):
    		    dict = {} #定义字典
    		    raw = input().split()#每个元素都是个字符串
    		    print("Case " + str(k + 1) + ": ", end="")
    		    i=1
    		    while i< len(raw):
    			    if len(raw[i])==2 and raw[i][0]=='-':#是个选项
    				    if raw[i][1] in cmd2:
    					    dict[raw[i]] = "" #值为空
    					    i+=1
    				    elif i+1<len(raw) and raw[i][1] in cmd1: #有参数
    					    if not judge(raw[i+1]): #检测下一个字符串是否合格
    						    break
    					    dict[raw[i]] = " " + raw[i+1]
    					    i+=2 #跳过下一个数字		
    				    else:
    					    break #选项名不匹配
    			    else:
    				    break
    		    ans = sorted(dict.items(),key=lambda x:x[0]) #按dict的第一键值排序,默认升序
    		    for i in ans:
    			    print(i[0]+i[1],end=" ")
    		    print()
    					
    	except:
    		break
    
    
    

     

    展开全文
  • java编程之将整数字符串转换为整数

    千次阅读 2013-05-10 18:46:35
    *设计一个程序,其功能是从命令行输入整数字符串,再将该整数字符串转换为整数,输入的数据可能具有以下格式: 12345 123 45 123x yz456 对这种异常进行捕获和处理。 */ import java.util.Scanner; //导入java.util...
    /*
     *设计一个程序,其功能是从命令行输入整数字符串,再将该整数字符串转换为整数,输入的数据可能具有以下格式: 12345 123 45 123x yz456 对这种异常进行捕获和处理。
    */
    import java.util.Scanner;  //导入java.util.Scanner包
    
    public class change{
    	public static void main(String args[]){
    		int i;
    		Scanner input=new Scanner(System.in);   //实现命令行输入
    		System.out.println("请输入要输入的数字字符串个数i:");
    		i=input.nextInt();  //输入整数,赋值给i,要判断的字符串的个数
    		//System.out.println(i);
    		String str;
    		str=input.nextLine();  //输入
    		for(int j=1;j<=i;j++){  //for循环执行一下语句,看是否有异常,有异常时呃操作
    			System.out.println("请输入第"+j+"个数字字符串:");
    			str=input.nextLine();  //输入字符串
    			try{
    				Integer.parseInt(str);   //强制转换
    				
    			}catch(NumberFormatException e){  //异常类和对象
    				System.out.println("出错啦!有异常!");  //发现异常时将执行的语句
    			}			
    			finally{  //不管有没有发生异常都执行
    				System.out.println("程序已执行!");  //输出语句
    			}
    		}
    		System.out.println("程序执行结束啦~");  //输出语句
    		
    	}
    }

    展开全文
  • 试题编号: 201403-3 试题名称: 命令行选项 时间限制: 1.0s 内存限制: 256.0MB ...这些字符串中的第一个为该命令行工具的名字,由小写字母组成,你的程序不用对它进行处理。在工...
    试题编号:201403-3
    试题名称:命令行选项
    时间限制:1.0s
    内存限制:256.0MB
    问题描述:

    问题描述

      请你写一个命令行分析程序,用以分析给定的命令行里包含哪些选项。每个命令行由若干个字符串组成,它们之间恰好由一个空格分隔。这些字符串中的第一个为该命令行工具的名字,由小写字母组成,你的程序不用对它进行处理。在工具名字之后可能会包含若干选项,然后可能会包含一 些不是选项的参数。
      选项有两类:带参数的选项和不带参数的选项。一个合法的无参数选项的形式是一个减号后面跟单个小写字母,如"-a" 或"-b"。而带参数选项则由两个由空格分隔的字符串构成,前者的格式要求与无参数选项相同,后者则是该选项的参数,是由小写字母,数字和减号组成的非空字符串。
      该命令行工具的作者提供给你一个格式字符串以指定他的命令行工具需要接受哪些选项。这个字符串由若干小写字母和冒号组成,其中的每个小写字母表示一个该程序接受的选项。如果该小写字母后面紧跟了一个冒号,它就表示一个带参数的选项,否则则为不带参数的选项。例如, "ab:m:" 表示该程序接受三种选项,即"-a"(不带参数),"-b"(带参数), 以及"-m"(带参数)。
      命令行工具的作者准备了若干条命令行用以测试你的程序。对于每个命令行,你的工具应当一直向后分析。当你的工具遇到某个字符串既不是合法的选项,又不是某个合法选项的参数时,分析就停止。命令行剩余的未分析部分不构成该命令的选项,因此你的程序应当忽略它们。

    输入格式

      输入的第一行是一个格式字符串,它至少包含一个字符,且长度不超过 52。格式字符串只包含小写字母和冒号,保证每个小写字母至多出现一次,不会有两个相邻的冒号,也不会以冒号开头。
      输入的第二行是一个正整数 N(1 ≤ N ≤ 20),表示你需要处理的命令行的个数。
      接下来有 N 行,每行是一个待处理的命令行,它包括不超过 256 个字符。该命令行一定是若干个由单个空格分隔的字符串构成,每个字符串里只包含小写字母,数字和减号。

    输出格式

      输出有 N 行。其中第 i 行以"Case i:" 开始,然后应当有恰好一个空格,然后应当按照字母升序输出该命令行中用到的所有选项的名称,对于带参数的选项,在输出它的名称之后还要输出它的参数。如果一个选项在命令行中出现了多次,只输出一次。如果一个带参数的选项在命令行中出 现了多次,只输出最后一次出现时所带的参数。

    样例输入

    albw:x
    4
    ls -a -l -a documents -b
    ls
    ls -w 10 -x -w 15
    ls -a -b -c -d -e -l

    样例输出

    Case 1: -a -l
    Case 2:
    Case 3: -w 15 -x
    Case 4: -a -b

    问题分析:选项是两个字符,而且第一个字符要是’-‘。结果用map保存,会自动按字典序排序; 命令重复时, 特别是对有参数的选项, 替换起来非常方便。

    #include <iostream>
    #include <map>
    #include <sstream>
    #include <algorithm>
    
    using namespace std;
    
    map<char,int> op;
    // 用map保存结果会自动升序排序 
    map<string,string> res;
    
    int whatis(string str) {
        if(str.size()==2&&str[0]=='-') {
            return op[str[1]];
        }
    
        return 0;
    }
    
    void run(string line) {
        string str,tmp;
        res.clear();    // 清空map 
        // 按空格一个个获取 
        istringstream is(line);
        is>>str;
        while(is>>str) {
            switch(whatis(str)) {
                case 1:
                    res[str]="";
                    break;
                case 2: // 如果带参数,直接再读一个 
                    if(is>>tmp) {
                        res[str]=tmp;
                    } else {    // 读取失败说明格式不对 
                        return;
                    }
                    break;
                default:
                    return;
            }
        }
    }
    
    int main(void) {
        int N;
        string tmp,str,ttmp;
        cin>>tmp;
        for(int i=0; i<tmp.size(); i++) {
            if(tmp[i+1]==':') {
                op[tmp[i]]=2;
                i++;
            } else {
                op[tmp[i]]=1;
            }
        }
        cin>>N;
        getchar();
        for(int i=0; i<N; i++) {
            getline(cin,tmp);   // 读取一行 
            run(tmp);
            // 输出结果 
            cout<<"Case "<<i+1<<":";
            for(map<string,string>::iterator it=res.begin(); it!=res.end(); it++) {
                cout<<' '<<it->first;
                if(it->second!=""){
                    cout<<' '<<it->second;
                }
            }
            cout<<endl;
        }
    
    
        return 0;
    }

     

    展开全文
  •  问题描述 试题编号: ...命令行选项 ... 请你写一个命令行分析程序,用以分析给定的命令行里包含哪些选项。每个命令行由若干个字符串组成,它们之间恰好由一个空格分隔。这些字符串中的第一个为
    
    问题描述
    试题编号: 201403-3
    试题名称: 命令行选项
    时间限制: 1.0s
    内存限制: 256.0MB
    问题描述:
    问题描述
      请你写一个命令行分析程序,用以分析给定的命令行里包含哪些选项。每个命令行由若干个字符串组成,它们之间恰好由一个空格分隔。这些字符串中的第一个为该命令行工具的名字,由小写字母组成,你的程序不用对它进行处理。在工具名字之后可能会包含若干选项,然后可能会包含一 些不是选项的参数。
      选项有两类:带参数的选项和不带参数的选项。一个合法的无参数选项的形式是一个减号后面跟单个小写字母,如"-a" 或"-b"。而带参数选项则由两个由空格分隔的字符串构成,前者的格式要求与无参数选项相同,后者则是该选项的参数,是由小写字母,数字和减号组成的非空字符串。
      该命令行工具的作者提供给你一个格式字符串以指定他的命令行工具需要接受哪些选项。这个字符串由若干小写字母和冒号组成,其中的每个小写字母表示一个该程序接受的选项。如果该小写字母后面紧跟了一个冒号,它就表示一个带参数的选项,否则则为不带参数的选项。例如, "ab:m:" 表示该程序接受三种选项,即"-a"(不带参数),"-b"(带参数), 以及"-m"(带参数)。
      命令行工具的作者准备了若干条命令行用以测试你的程序。对于每个命令行,你的工具应当一直向后分析。当你的工具遇到某个字符串既不是合法的选项,又不是某个合法选项的参数时,分析就停止。命令行剩余的未分析部分不构成该命令的选项,因此你的程序应当忽略它们。
    输入格式
      输入的第一行是一个格式字符串,它至少包含一个字符,且长度不超过 52。格式字符串只包含小写字母和冒号,保证每个小写字母至多出现一次,不会有两个相邻的冒号,也不会以冒号开头。
      输入的第二行是一个正整数 N(1 ≤ N ≤ 20),表示你需要处理的命令行的个数。
      接下来有 N 行,每行是一个待处理的命令行,它包括不超过 256 个字符。该命令行一定是若干个由单个空格分隔的字符串构成,每个字符串里只包含小写字母,数字和减号。
    输出格式
      输出有 N 行。其中第 i 行以"Case i:" 开始,然后应当有恰好一个空格,然后应当按照字母升序输出该命令行中用到的所有选项的名称,对于带参数的选项,在输出它的名称之后还要输出它的参数。如果一个选项在命令行中出现了多次,只输出一次。如果一个带参数的选项在命令行中出 现了多次,只输出最后一次出现时所带的参数。
    样例输入
    albw:x
    4
    ls -a -l -a documents -b
    ls
    ls -w 10 -x -w 15
    ls -a -b -c -d -e -l
    样例输出
    Case 1: -a -l
    Case 2:
    Case 3: -w 15 -x
    Case 4: -a -b

    真的是越来越讨厌字符串处理了,各种错误....
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    #include<algorithm>
    #include<limits.h>
    #include<iostream>
    #include<queue>
    #include<string>
    #include<cstdio>
    #include<cstring>
    #include<stack>
    #include<vector>
    #include<math.h>
    #include<map>
    using namespace std;
    int  main()
    {
    		char s[305];
    		map<char,int>q,p;
    		map<char,string>ans;
    		int n,i,j;
    		cin >> s;
    		for(i=0;s[i]!=0;i++)
    		{
    			if(s[i]==':')
    			  q[s[i-1]]++;
    			else
    			  q[s[i]]++;
    		}
    		scanf("%d",&n);
    		getchar();
    		for(i=1;i<=n;i++)
    		{
    			p.clear();
    			ans.clear();
    			gets(s);
    			printf("Case %d:",i);
    		    for(j=1;s[j]!=' ' && s[j]!=0;j++);
    		    if(s[j]==0)
    		    {
    		    	puts("");
    		    	continue;
    			}
    			while(s[j]!=0)
    			{
    				if(s[++j]!='-')break;
    				if(q[s[++j]]==0)break;
    				if(q[s[j]]==1)
    				{
    					if(s[j+1]==' ' || s[j+1]==0)
    					  p[s[j++]]=1;
    					else
    					  break;
    				}
    				else if(s[j+1]==' ' && s[j+2]!=0)
    				{
    					p[s[j]]=2;
    					string temp="";
    					int tm=j;
    					for(j=j+2;s[j]!=' ' && s[j]!=0;j++)
    					  temp+=s[j];
    					ans[s[tm]]=temp;
    				}
    				else
    				  break;
    			}
    			map<char,int>::iterator it;
    			for(it=p.begin();it!=p.end();it++)
    			{
    				cout <<  " -" << it->first;
    				if(it->second==2)
    				  cout << " " << ans[it->first];
    			}
    			printf("\n");
    		}
    }

    展开全文
  • 编写一个程序,实现从命令行参数输入两个字符串类型的数值,并计算输出两个数值的和。 package Text6; import java.util.Scanner; //编写一个程序,实现从命令行参数输入两个字符串类型的数值,并计算输出两...
  • *7.21(整数求和)编写程序,从命令行输入不定数目的整数,然后显示它们的和题目题目描述破题代码运行实例 题目 题目描述 7.21(整数求和)编写程序,从命令行输入不定数目的整数,然后显示它们的和 破题 主方法:...
  • 字节或字符串数组中得到一个字符串,统计该字符串中字母 a 的出现次数。 public class Test2 { public static void main(String[] args) { // TODO 自动生成的方法存根 char e[]= {'h','o','a','s','a'};/...
  • C语言:把数字字符串转换成整型数字不懂时,别乱说;懂得时,别多说;...程序如下: 若输入字符串"ab56cd87",则输出结果:以%d格式输出十进制整数5687;若输入字符串"-ab56cd87",则输出结果:...
  • package javaDemo2; public class Test{ public static void main(String[] args) { String a1 = "1"; String a2 = "2"; System.out.println(getSum(a1,a2)); } }
  • System.out.println("请输入第一个字符"); String t=s.next(); byte []bytes =t.getBytes(); int U= bytes[0]; System.out.println("请输入第二个字符"); String t1=s.next(); byte []bytes1 =...
  • 题目:输入一个表示整数字符串,把该字符串转换成整数并输出。 例如输入字符串"345",则输出整数 345。 */ #include #include using namespace std; int charToNum(char *str) { int neg=0,num; char *p=str; ...
  • Java从命令行输入和输出数据

    万次阅读 2018-10-12 20:23:04
    输入基本型数据 在Java基本类型介绍 一节中提到,Java程序都是由若干个类组成的,所以输入也是...然后reader对象可通过以下函数对应读取用户在命令行输入的各种基本类型: nextBoolean(),nextByte(),nexyShort(),nex...
  • 输入一个表示整数字符串,把该字符串转换成整数并输出。例如输入字符串"345",则输出整数345 public class Atoi { public int atoi(String str){ int neg=0; int i=0; if(str.charAt(i)=='-'){ i++; ...
  • 字符串数组和命令行参数 一、字符串数组 下面程序会将字符串数组的各个元素初始化为"Turbo" 、"NA" 、"DOHC"并显示: package com.example;// 字符串数组 class StringArray1 { public static void main...
  • //将字符串转换成整型  int count=0;  if(i)  {for(;i>=0;i--)  count+=i;  System.out.println(count);}  else {  System.out.println("请输入小于或等于5的整数");    }    } ...
  • 试题编号: 201403-3 试题名称: 命令行选项 时间限制: 1.0s 内存限制: 256.0MB ...这些字符串中的第一个为该命令行工具的名字,由小写字母组成,你的程序不用对它进行处理。在工...
  • 在Java中使用标准输入输出设备进行字符串整数浮点数等的输入输出操作 在Java语言中进行标准输入输出(键盘显示器)需要通过创建输入输出流对象的方式进行,一般情况下我们可以使用 BufferedReader,Scanner...
  • 文本文档读取DFA矩阵,从命令行输入字符串进行识别
  • JAVA把字符串转换成整数

    万次阅读 2019-03-14 18:35:13
    剑指offer: 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。 public ...
  • Java整数字符串的相互转化

    万次阅读 多人点赞 2018-04-24 15:33:33
    把int转化为String,以下三种方式把整形地i转化为字符串s,当然把Double、Float、Long转化为字符串操作一样。1.String s=""+i;2.String s=Integer.toString(i);3.String s=String.valueOf(i);把String转化...
  • 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。 输入描述 输入一个字符...
  • 最近更新:26th 4月, 2015开始int main(int argc, const char * argv[])在学习C语言的时候,大家都是编写一个程序,然后在终端运行查看结果,输入数字等等……不知道大家有没有尝试过让你编写的程序能够像系统命令...
  • 1 /*利用命令行参数输入三个整数,并对三个数字进行降序排列。 2 –PS:将字符串转换为数字的方法 3 •int num=Integer.parseInt(String number);*/ 4 package com.gen; 5 6 public class ArgumentOrder ...
  • 问题背景 主要是在做C++的笔试题时可能会碰到,如下: 要求从命令行输入一个整数n和一个字符串str。 要求第一行用来输入一个整数n,第二行用来输入一行字符串。 Note:不能是在同一行输入啊,第一行是一个整数n,...
  • } Read/Input Multiple Characters or String From Console/Standard Input 控制台/标准输入读取/输入多个字符或字符串 控制台/标准输入读取/输入整数(Read/Input Integer From Console/Standard Input) We can...
  • 0.首先是命令行的帮助 p y d o
  • * 由命令行输入一个4位整数,求将该数反转以后的数,如原数为1234,反转后为4321 */ package lianxiti; import java.util.Scanner; public class Di17 { public static void main(String[] args) { Scanner ...
  • 字符串和数字

    千次阅读 2020-10-23 09:26:16
    然而,许多程序问题需要使用更小的数据单位来解决,比方说字符串和数字。 在这一章中,我们将查看几个用来操作字符串和数字的 shell 功能。shell 提供了各种执行字符串操作的参数展开功能。 除了算术展开(在第七...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 55,735
精华内容 22,294
关键字:

从命令行输入整数字符串