【发布时间】:2016-11-26 23:03:22
【问题描述】:
这是我的代码。有两个功能,一个打印图像,一个反转。我不擅长指针和数组。我知道我必须将数组作为指针返回,因为函数不返回数组。所以我不知道哪些是错误的。我知道如何在不使用函数的情况下做到这一点,但我必须使用单独的函数来做到这一点。当我打印图像时(是的,它是皮卡丘),我从文件中保存并打印它以查看它是否正确保存,是的,但是在反映它时它会打印一些随机字符。这是皮卡丘。
so
sNm
.yhyo/-` yNNN
`sNNNNh:-.` :sdNN
.yNNh:::::-. -:::/s
.sh::::::::-. `:::::-
`.:/::::::::. ` -:::::.
`.-:/:::::::::::::-.` ::::::
``-:::::::::::::::-.::::/.
.:::::::::::::::::::::/:
.::oh//:::::::::::::::::`
.:::ymy+::::::::::::::::.
.oo:::::::::/:::::o/yo::/
`ooo/::::+osss+::::ommo::-
`oo+:::::++///oyo:::::::/`
-/::::::/:::::+/:::::/++.--::::.
``.:/:::::/::::/:::::/ooo+:::::::/`
`-::::::::::::/:/:::::::+oo/:::::://:```
`/::::::::::::/:::::::/::/::::::::/::::::::::--.`
::::::::::::://:::::::::::::::::/:::::::::::::::::--.`
`:///:::::////::::::::::::::/:. :::/:::::::::::::::::::`
`-/////:::::::::::::::://:. .:://///::::::::::::::.
:::::::::::::::::::::::` :://///////::::::::-.
-::::::::::::::::::::::. ----:://: `.--::/::-`
.:::::::::::::::::::::::` :/::::/- ``
`::::::::::::::::::::::::. :+/--:.
-::::::::::::::::::::::::+ossy
/:::::::::::::::::::::::::/:/+
`/::::::::::::::::::::::::::`
.//////:::::://///:::::::::`
`-//::////...````.---::////:/-.
`.-...`` .-::/::/:.
``.-.
它打印这个:
os
mNs
NNNy `-/oyhy.
NNds: `.-:hNNNNs`
s/:::- .-:::::hNNy.
-:::::` .-::::::::hs.
.:::::- ` .::::::::/:.`
:::::: `.-:::::::::::::/:-.`
./::::.-:::::::::::::::-``
:/:::::::::::::::::::::.
`::::::::::::::::://ho::.
.::::::::::::::::+ymy:::.
/::oy/o:::::/:::::::::oo.
-::ommo::::+ssso+::::/ooo`
`/:::::::oyo///++:::::+oo`
.::::--.++/:::::/+:::::/::::::/-
`/:::::::+ooo/:::::/::::/:::::/:.``
```://::::::/oo+:::::::/:/::::::::::::-`
`.--::::::::::/::::::::/::/:::::::/::::::::::::/`
.--:::::::::::::::::/::::::::::::::::://:::::::::::::
::::::::::::::::::/::: .:/::::::::::::://// :::::///:
.:::::::::::::://///::. .://:::::::::::::::://///-
.-:::::::://///////:::::::::::::l▌w£ⁿrtÉ X║ P║0 ¡ⁿrt╗ É ::::╗ h╗
-/::::/: `:::::::::::::::::::::::.
|▌`wyæst X╗` ╪╗` Ü╪«$ ä╗` ╛·rt @╗` ╚╓` P╓vt╩Q│P■ É╓` 9▌⌠v ╪╗` ░╗` ╟α⌠v:::: $ ╫` ╫`
+/:/:::::::::::::::::::::::::/
`::::::::::::::::::::::::::/`
`::::::::://///:::::://////.
.-/:////::---.````...////:://-`
.:/::/::-....-.`
是什么原因造成的,我确定这是我发送和保存反转字符数组的方式。但我不知道如何解决它。
#include<stdio.h>
#include<string.h>
#define S 100
char** Reverse(char str[S][S],int i);
void printImage(char str[S][S],int i);
int main()
{
int i=0;
FILE *fp;
char buf[S],buf2[S][S],**refpic;
fp = fopen("pikachu.txt","r");
while(fgets(buf, 100, fp) != NULL)
{
strcpy(buf2[i],buf);
i++;
}
fclose(fp);
printImage(buf2,i);
refpic=Reverse(buf2,i);
strncpy(refpic,buf2,S);
printImage(refpic,i);
return 0;
}
char** Reverse(char str[S][S],int i)
{
int a=0,b=0;
char refpic[S][S];
for(a=0;a<i;a++)
{
for(b=0;b<100;b++)
{
refpic[a][b]=str[a][99-b];
}
}
return refpic;
}
void printImage(char str[S][S],int i)
{
int a=0,b=0;
for(a=0;a<i;a++)
{
for(b=0;b<100;b++)
{
printf("%c", str[a][b]);
}
}
}
【问题讨论】:
-
欢迎来到 Stack Overflow!听起来您可能需要学习如何使用调试器来逐步执行代码。使用好的调试器,您可以逐行执行您的程序,并查看它与您期望的偏差在哪里。如果您要进行任何编程,这是必不可少的工具。进一步阅读:How to debug small programs.
标签: c arrays string pointers multidimensional-array