读书人

字符串的处理解决方案

发布时间: 2013-01-25 15:55:29 作者: rapoo

字符串的处理
Description

字符串的输入输出处理。
Input

第一行是一个正整数N,最大为100。之后是多行字符串(行数大于N), 每一行字符串可能含有空格,字符数不超过1000。
Output

先将输入中的前N行字符串(可能含有空格)原样输出,再将余下的字符串(不含有空格)以空格或回车分割依次按行输出。每行输出之间输出一个空行。
Sample Input

2
www.njupt.edu.cn NUPT
A C M
N U P Ter
Sample Output

www.njupt.edu.cn NUPT

A C M

N

U

P

Ter

C/C++ code
#include <stdio.h>#include <string.h>#define MAX 10001char str[MAX] = {0};void PrintCompleteStr(int n){    char tmpstr[MAX] = {0};    int mark = 0;    int len = 0;    int i,j;    for (i = 0;i < n;i++)    {        fflush(stdin);        fgets(tmpstr,MAX,stdin);        len = strlen(tmpstr);        if (0 == i)        {            strcpy(str,tmpstr);            str[len + 1] = '`';            mark = len;        }        else        {            strcat(str,tmpstr);            mark += len + 2;            str[mark] = '`';        }    }}int main(){    int n = 0;    char BreakOff[MAX] = {0};    int len = 0;    while (scanf("%d", &n) != EOF)    {        PrintCompleteStr(n);        fflush(stdin);        fgets(BreakOff,MAX,stdin);        len = strlen(str);        for (int j = 0;j < len;j++)        {            if ('`' == str[j])            {                printf("\n");            }            else                printf("%c",str[j]);        }        ///////////////////////////////////////////////////////////        len = strlen(BreakOff);        for (int i =0;i < len;i++)        {            if (BreakOff[i] == ' ')            {                printf("\n");            }            else                printf("%c",BreakOff[i]);        }    }    return 0;}

这是我自己写的代码,我是用'`' 这个符号做的换行标志,
但是我们学校ACM的OJ出现个
Runtime Error:[ERROR] A Not allowed system call: runid:16029 callid:8

辅助解释:
A Not allowed system call: runid:16029 :使用了系统禁止的操作系统调用,看看是否越权访问了文件或进程等资源
这个错误提示。
不知道是什么原因。我的代码已经完全实现他的要求了。。
但是我觉得用'`'不好。
谁有更好的写法?谢谢

[解决办法]
探讨

昨天不是给了一份代码吗? 不能用?

读书人网 >C语言

热点推荐