字符串操作三(串)

字符串操作三(串)

时间: 1ms        内存:128M

描述:

输入一行字符串,按特定字符‘-’截取。测试数据有多组,一次性输入与输出。

输入:

输出:

示例输入:

123-asdfg-345

asdq--q12

123

---

示例输出:

123
asdfg
345

asdq
null
q12

123

null
null
null
null

提示:

参考答案(内存最优[1092]):

#include<stdio.h>
#include<string.h>
int main()
{
    char a[200];
    while(scanf("%s",a)!=EOF)
    {
        int n=strlen(a);
    int i;
    for(i=0;i<n;i++)
    {
        if(a[i]=='-'&&i==0)
            printf("null\n");
        else if(a[i]!='-'&&a[i+1]=='-')
            printf("%c\n",a[i]);
        else if(a[i]=='-'&&a[i-1]=='-')
            printf("null\n");
        else if(a[i]!='-')
            printf("%c",a[i]);
    }
    if(a[n-1]=='-')
        printf("null\n");
        else
            printf("\n");
            printf("\n");
    }
    return 0;
}

参考答案(时间最优[0]):

#include <iostream>
#include <cstring>
using namespace std;
int main()
{
	char a[20];
	int p,i,j;
	while(cin>>a)
	{	p=0;
		for(i=0;i<strlen(a);i++)
		{
			if(i!=0&&a[i]=='-'&&a[i-1]!='-')
			{
				for(j=p;j<i;j++)
				{
					cout<<a[j];
				}
				cout<<endl;
			}
			if(a[i]=='-')p=i+1;
			if(a[i]=='-'&&i==0) cout<<"null"<<endl;
			if((a[i]=='-'&&i==strlen(a)-1)||(a[i]=='-'&&strlen(a)>1&&a[i+1]=='-'))cout<<"null"<<endl;
		}
			for(int k=p;k<strlen(a);k++)cout<<a[k];
			cout<<endl;if(a[strlen(a)-1]!='-')cout<<endl;
	}
	return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注