c 语言
//用二维数组存放每个单词#include <stdio.h>
#define MAX80
int main(void)
{
char str;
char *p=str;
int cot=0,i=0,j=0;
char ch;
fgets(str,MAX,stdin);
while(*p++!='\n')
{
if(*p==' ')
{
cot++;
}
}
char word;
p=str;
while((ch=*p++)!='\n')
{
if(ch!=' ')
{
word=ch;
}
if(ch==' ')
{
word='\0';
i++;
j=0;
}
}
word='\0';
for(cot;cot>=0;cot--)
{
printf("%s",word);
if(cot>0)
{
printf(" ");
}
}
return 0;
}
我的思路是先创建一个二维数组,存好每个单词,最后根据最后一个单词没有句号输出,但是结果说我的程序运行时出现错误(如数组越界等问题),这是哪里出现了问题呢,请教各位大佬! 本帖最后由 jhq999 于 2022-3-18 07:40 编辑
#include <stdio.h>
#define MAX80
int main(void)
{
char str;
char *p=str;
int cot=0,i=0,j=0;
char ch;
fgets(str,MAX,stdin);
while(*p++!='\n')
{
if(*p==' ')
{
cot++;
}
}
cot++;//最后一个没有空格
char (*word)=new char;
p=str;
while((ch=*p++)!='\n')
{
if(ch!=' ')
{
word=ch;
}
if(ch==' ')
{
word='\0';
i++;
j=0;
}
}
word='\0';
for(cot;cot>0;cot--)///////////
{
printf("%s",word);
if(cot>0)
{
printf(" ");
}
}
return 0;
}
#include <stdio.h>
#define MAX80
int main(void)
{
char str;
int cot=0,i=0,j=0;
char ch;
fgets(str,MAX,stdin);
while(str!='\n')
{
cot++;
}
str='\0';
for(cot;cot>0;cot--)
{
if (str==0x20)
{
printf("%s",str+cot+1);
printf("%c",0x20);
str='\0';
}
}
printf("%s",str);
return 0;
}
w eqrty u iop f gggh kl a
a kl gggh f iop u eqrty w #include <stdio.h>
void foo(){
char words;
if(scanf("%s", words) == 1)
;
else return;
foo();
printf("%s ", words);
}
int main(){
foo();
return 0;
} 傻眼貓咪 发表于 2022-3-18 09:44
用递归只能实现反着输出,但是最后还是会有空格{:10_266:}
页:
[1]