【华为机试练习】字符串分隔

题目描述
?连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
?长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述:
连续输入字符串(输入2次,每个字符串长度小于100)
输出描述:
输出到长度为8的新字符串数组



解法(C语言版):

#include<stdio.h>
#include<string.h>

char *outputstr(char *in, char *out)
{
    int i;
    for(i = 0; i < 8; ++i)
    {
        if(in[i] != NULL)
            out[i] = in[i];
        else
            out[i] = ‘0‘;
    }
    return out;
}

int main()
{
    char instr[100] = {0};
    char outstr[9] = {0};
    while(gets(instr))
    {
        char *p = instr;
        while(*p != ‘\0‘)
        {
            printf("%s\n", outputstr(p, outstr));
            p += 8;
        }
        memset(instr, 0, 100);
    }
    return 0;
}

原文地址:https://blog.51cto.com/13614527/2467260

时间: 2024-11-03 01:22:21

【华为机试练习】字符串分隔的相关文章

华为机试:字符串分隔

题目描述 •连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组: •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 输入描述: 连续输入字符串(输入2次,每个字符串长度小于100) 输出描述: 输出到长度为8的新字符串数组 示例1 输入 abc 123456789 输出 abc00000 12345678 90000000 Java: 1 import java.util.Arrays; 2 import java.util.Scanner; 3 4 public cl

华为机试测试- 字符串最长的数字串

输入 输入一个字符串. 输出 输出字符串中最长的数字字符串和它的长度. 如果数字字符串为空,则只输出0 如 input: dadfsaf  output:0 样例输入 abcd12345ed125ss123058789 样例输出 123058789,9 import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; public class Main { p

华为机试—替换字符串中的字母

功能描述:将字符串中的字母全部替换成字母的下一个字母,要是最后一位是z或Z则替换为a或A. *        输入:aBxyZ *        输出:bCyzA #include<iostream> #include<string> #include<cctype> using namespace std; char ml[]="abcdefghijklmnopqrstuvwxyza"; char mu[]="ABCDEFGHIJKLMN

华为机试题目---字符串替换

题目要求:输入一个字符串,然后在输入一个整数,就是替换字符串的次数,然后依次输入需要替换的字符串-- 例如: 输入:abcdefg 3 a->qwe b->s fg->abc 输出:qwescdeabc //字符串替换 #include<iostream> #include<vector> #include<string> #define max 100 using namespace std; void change(char str[],int c

华为机试-计算字符串的相似度

题目描述 对于不同的字符串,我们希望能有办法判断相似程度,我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法如下: 1 修改一个字符,如把"a"替换为"b". 2 增加一个字符,如把"abdd"变为"aebdd". 3 删除一个字符,如把"travelling"变为"traveling". 比如,对于"abcdefg"和"abcdef&qu

2015华为机试——将字符串中不同字符的个数打印出来

描述: 找出字符串中,不同的字符的个数. 题目类别: 字符串 难度: 初级 运行时间限制: 无限制 内存限制: 无限制 阶段: 入职前练习 输入: 输入一个字符串,'\0'作为字符串结束符. 输出: 输出字符串中不同字符的个数. 样例输入: 122345 样例输出: 5 代码如下: public class dayin_Char { public static void main(String[] args) { Scanner sc=new Scanner(System.in); while

华为机试—给定字符串中找出单词

题目: 在给定字符串中找出单词("单词"由大写字母和小写字母字符构成,其他非字母字符视为单词的间隔,如空格.问号.数字等等:另外单个字母不算单词):找到单词后,按照长度进行降序排序,(排序时如果长度相同,则按出现的顺序进行排列),然后输出到一个新的字符串中:如果某个单词重复出现多次,则只输出一次:如果整个输入的字符串中没有找到单词,请输出空串.输出的单词之间使用一个"空格"隔开,最后一个单词后不加空格. 要求实现函数: void my_word(charinput[

(华为机试)双向链表实现字符串条件表达式的求值

描述: 给定一个以字符串形式表示的算术表达式,计算该表达式的值. 表达式支持如下运算:"+.-.*./",其中"*"和"/"的优先级要高于"+"和"-": 不需要考虑括号,且表达式之间没有空格: 例如:对于表达式"3-2+15*2",该表达式值为31. 运行时间限制: 60 Sec 内存限制: 256 MByte 输入: 加减乘除四则运算表达式,长度不超过1024字节,运算式中不含有括号

[华为机试]输入数字的汉语拼音,每个拼音的首字母大写。输出该数字的阿拉伯数字。

//输入数字的汉语拼音,每个拼音的首字母大写.输出该数字的阿拉伯数字. //JiuBaiJiuShiJiu -> 999 #include<stdio.h> #include<string.h> int result = 0; void add(int n,char wei[]) { if(strcmp(wei,"Wan") == 0) result = result + n * 10000; else if(strcmp(wei,"Qian&q

华为机试在线训练(4)

华为机试在线训练:字符串分隔 题目描述 ?连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组:?长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 输入描述: 连续输入字符串(输入2次,每个字符串长度小于100) 输出描述: 输出到长度为8的新字符串数组 输入例子: abc123456789 输出例子: abc000001234567890000000 代码: 1 import java.util.Arrays; 2 import java.util.Scanner; 3