|
zzzu 针扎
zzzx 沾沾自喜 只争朝夕
zzzy 种族主义
zzzz 自作主张 重中之重
如何将上面的格式转换为下面的格式:
zzzu 针扎
zzzx 沾沾自喜
zzzx 只争朝夕
zzzy 种族主义
zzzz 自作主张
zzzz 重中之重
我写了一个程序,但是出错了,谁帮我看看错在哪里
程序的功能:码表转换
例如:
zzzu 针扎
zzzx 沾沾自喜 只争朝夕
zzzy 种族主义
zzzz 自作主张 重中之重
将上面的格式转换为下面的格式:
zzzu 针扎
zzzx 沾沾自喜
zzzx 只争朝夕
zzzy 种族主义
zzzz 自作主张
zzzz 重中之重
我的程序通过编译,名字为to.exe ,但使用 to.exe <a.txt >b.txt
运行后得到的文本文件内容不变,还是:
zzzu 针扎
zzzx 沾沾自喜 只争朝夕
zzzy 种族主义
zzzz 自作主张 重中之重
并且之后好像还多了无数个回车符,文本文件大小一直不停地增加,程序死了,似乎是无法退出,只能强制关闭。
我是初学者,请问这个程序到底是哪里写错了,我知道我的结构不好,熟练的程序员可以写出更好的程序,这个程序很短,恳求有心的高手帮我指出错误,如能教我或帮我将此程序改正,小弟不胜感激!!!
程序如下:
#include <stdio.h >
main()
{
int i,c,temp[7];
for (i = 0;i < 7;i++)
temp = 0;
no1:
temp[0] = c = getchar();
if (c == EOF)
goto end;
i = 1;
do
{
temp = c = getchar();
i++;
}
while (c != ' ');
temp = '\0 ';
no2:
i = 0;
while (temp != '\0 ')
{
c = temp;
putchar(c);
i++;
}
c = getchar();
while (c != ' ' ¦ ¦ c != '\t ' ¦ ¦ c != '\n ' ¦ ¦ c != EOF)
{
putchar(c);
c = getchar();
}
i = '\n ';
putchar(i);
if (c == ' ' ¦ ¦ c == '\t ') goto no2;
if (c == '\n ') goto no1;
end:
i = EOF;
putchar(i);
return 0;
} |
|