首页 > 试题广场 >

解读密码

[编程题]解读密码
  • 热度指数:1332 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
nowcoder要和朋友交流一些敏感的信息,例如他的电话号码等。因此他要对这些敏感信息进行混淆,比如在数字中间掺入一些额外的符号,让它看起来像一堆乱码。
现在请你帮忙开发一款程序,解析从nowcoder那儿接收到的信息,读取出中间有用的信息。

输入描述:
输入有多行。

每一行有一段经过加密的信息(其中可能包含空格),并且原始信息长度不确定。


输出描述:
输出每段信息中数字信息。
示例1

输入

$Ts!47&*s456  a23* +B9k

输出

47456239
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
int main()
{
    string str;
    while(getline(cin,str))
    {
        for(int i=0;i<str.size();i++){
            if(isdigit(str[i]))   cout<<str[i];
        }
        cout<<endl;
    }
    return 0;
}

编辑于 2020-03-15 14:48:18 回复(0)
// write your code here import java.util.*; import java.io.*;
public class Main{     public static void main(String[] args)throws IOException{         BufferedReader br=new BufferedReader(new InputStreamReader(System.in));         String str=null;         while((str=br.readLine())!=null){             for(int i=0;i<str.length();i++){                 if(str.charAt(i)>='0' && str.charAt(i)<='9')                     System.out.print(str.charAt(i));             }             System.out.println();         }     } }

发表于 2019-05-11 13:40:04 回复(0)
import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        while(scanner.hasNext()){
            String number=scanner.nextLine();
            String result="";
            for(int i=0;i<number.length();i++){
                if(number.charAt(i)>='0'&&number.charAt(i)<='9'){
                    result+=number.charAt(i);
                }
            }
            System.out.println(result);
        }
    }
}

发表于 2018-09-20 23:31:30 回复(1)
#include<bits/stdc++.h>
using namespace std;
int main()
{
    string str;
    while(getline(cin,str)){
        int len=str.length();
        for(int i=0;i<len;i++){
            if(str[i]>='0'&&str[i]<='9')
                cout<<str[i];
        }
        cout<<'\n';
    }
    return 0;
} 

发表于 2017-11-22 14:33:29 回复(0)
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
#include<functional>
#include <map>
#include <set>
#include <unordered_set>
#include <unordered_map>
#include <exception>
#include <iomanip>
#include <memory>
#include <sstream>

#define INF 1000000
using namespace std;

int main(int argc, char** argv)
{
	//freopen("in.txt", "r", stdin);
	char c;
	while ((c = getchar()) != EOF)
	{
		ostringstream os;
		if (isdigit(c)) os << c;
		while ((c = getchar()) != '\n' && c != EOF)
			if (isdigit(c)) os << c;
		cout << os.str() << endl;
	}

	return 0;
}

发表于 2017-07-12 13:12:56 回复(0)

python 3行解法

import sys
for i in sys.stdin.readlines():
    print ("".join(filter(lambda x: x.isdigit(), i.strip())))

HarrisonShen的解法使用正则,更加***……

 print ''.join(re.findall('\d+', raw_input()))
编辑于 2017-11-16 10:14:05 回复(0)
import java.util.*;
public class Main {
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            while(sc.hasNext()){
                String str = sc.nextLine();
                for(int i = 0;i < str.length();i++){
                    if(str.charAt(i) >= '0' && str.charAt(i) <= '9'){
                        System.out.print(str.charAt(i));
                    }
                }
                System.out.println();
            }
        }
}

编辑于 2022-06-06 09:44:00 回复(0)
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            String str = sc.nextLine();
            StringBuilder sb = new StringBuilder();
            for(int i = 0; i < str.length(); i++){
                if(str.charAt(i) >= '0' && str.charAt(i) <= '9'){
                    sb.append(str.charAt(i));
                }
            }
            System.out.println(sb);
        }
    }
}

发表于 2021-07-31 11:26:45 回复(0)
import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        while (scan.hasNext()){
            String str = scan.nextLine();
            for (int i = 0; i < str.length(); i++){
                if (str.charAt(i) >= '0' && str.charAt(i) <= '9'){
                    System.out.print(str.charAt(i));
                }
            }
            System.out.println();
        }
    }
}

发表于 2021-07-30 21:28:19 回复(0)
#include<iostream>
#include<string>
using namespace std;
int main()
{
    string str;
    while(getline(cin,str))
    {
        int n=str.size();
        for(int i=0;i<n;i++)
        {
            if(str[i]>='0'&&str[i]<='9')
                cout<<str[i];
        }
        cout<<endl;
    }
    system("pause");
    return 0;
}

//一定得注意入输出格式,不然编辑器不给过,


编辑于 2020-04-13 15:34:41 回复(0)
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
    string s;
    vector<int> v;
    while (getline(cin, s))
    {
        int len = s.size();
        for (int i = 0; i < len; i++)
        {
            if (s[i] >= '0' && s[i] <= '9')
            {
                v.push_back(s[i] - '0');
            }
        }
        for (auto& e : v)
        {
            cout << e;
        }
        cout << endl;
    }
    return 0;
}
发表于 2019-07-27 15:22:42 回复(0)
#include<iostream>
#include<string>
using namespace std;

void extNumber(string& str)
{
    for(size_t i=0;i<str.size();i++)
    {
        if(str[i]>='0' && str[i]<='9')
            cout<<str[i];
    }
    cout<<endl;
}

int main()
{
    string str;
    while(getline(cin,str))
        extNumber(str);
    return 0;
}

发表于 2019-07-27 11:39:03 回复(0)
只能用比较笨的方法:先找出符合的字符,其次填入动态数组中最后输出结果
import java.util.Scanner;
public class Main {  public static void main(String[] args){   Scanner scan = new Scanner(System.in);   while(scan.hasNext()){    String str=scan.nextLine();    int j=0;    StringBuffer stb=new StringBuffer();    for(int i=0;i<str.length();i++){     if(str.charAt(i)>='0'&&str.charAt(i)<='9'){      stb.insert(j++, str.charAt(i));     }    }    System.out.println(stb.toString());   }   scan.close();  } }

发表于 2018-06-27 23:03:53 回复(0)
// write your code here cpp
#include<iostream>
#include<string.h>
#include<stdio.h>
#include<cstdio>

using namespace std;

int main(){
    string s;
    while(getline(cin,s)){
        int len=s.length();
        for(int i=0;i<len;i++){
            if(s[i]>='0'&&s[i]<='9')
                cout<<s[i];
        }
        cout<<endl;

    }

    return 0;
    }
这么简单的题居然还调试了半天,起始一开始就写出来了,只不过判断函数写错了,0到9
我没包含0和9,居然犯了这么简单的错误。。。。
这道题 getline(cin,s),会用就迎刃而解了

发表于 2018-06-12 10:53:35 回复(0)
#include<iostream>
#include<string>
using namespace std;
int main()
{
 string password;
 while(getline(cin, password))
 {
 for (int i = 0; i < password.size(); i++)
 {
  if (password[i] >= '0'&&password[i] <= '9')
   cout << password[i];
 }
 cout << endl;
}
 return 0;
}

发表于 2018-02-21 14:17:05 回复(0)
#include<iostream>
#include<string>
using namespace std;
int main()
{
	string s;
	while (getline(cin, s))
	{
		string res;
		for (auto c : s)
			if (c >= '0'&&c <= '9')
				res += c;
		
		cout << res << endl;
	}
	return 0;
}

发表于 2017-04-23 19:07:51 回复(0)
import re
try:
    while 1:
        print ''.join(re.findall('\d+', raw_input()))
except:
    pass

发表于 2016-12-29 18:29:54 回复(0)
#include<iostream>
#include<string>
using namespace std;
int main(){
    string str;
    while(getline(cin,str)){  //可能包含空格
        int len = str.size();
        string res;
        for(int i=0;i<len;i++){
            if(str[i]>='0'&&str[i]<='9'){
                res.push_back(str[i]);
            }
        }
        cout<<res<<endl;
    }
    return 0;
}

发表于 2016-07-12 16:33:28 回复(0)
#include <iostream>
#include <string>
using namespace std;

int main()
{
	string str;
	while (getline(cin, str))
	{
		string temp;
		for (char ch : str)
			if (isalnum(ch) && !isalpha(ch)) temp += ch;
		cout << temp << endl;
	}
	return 0;
}

发表于 2015-12-19 18:58:20 回复(0)