字符串操作三(串)
时间: 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;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。
