求问一道C语言的题!reverse the sentence,求给出代码
发布网友
发布时间:2024-05-12 11:06
我来回答
共3个回答
热心网友
时间:2024-05-18 07:45
#include <stdio.h>
#include <string.h>
int main()
{
char instr[100], outstr[100], stack[100];
int i, n, k, j;
printf ("Input a string : ");
gets(instr);
n = strlen(instr);
for (i = n-1, j = 0; i >= 0; i--) {
k = 0;
while (instr[i] != ' ' && i >= 0) {
stack[k++] = instr[i--];
}
k -= 1;
while (k >= 0) {
outstr[j++] = stack[k--];
}
outstr[j++] = ' ';
}
outstr[j] = '\0';
printf ("%s\n", outstr);
return 0;
}
热心网友
时间:2024-05-18 07:46
这题目 ... 又是送分题了 ...
用 strtok 分割句子,用 string 数组保留 word,
然后逆向输出 word ...
#include <stdio.h>
char * sentence = "I am a student";
char word_list[ 125 ][ 50 ] = { 0 };
int word_count = 0;
while( true )
{
char * token = strtok( sentence, " " );
if( ! token ) break;
strcpy( word_list[ word_count ], token );
word_count ++;
}
while( word_count )
{
printf( "%s\n", word_list[ word_count ] );
word_count --;
}
热心网友
时间:2024-05-18 07:46
#include<stdio.h>
#include<string.h>
void main()
{
int i,j,l=0,a=0,k=0;
char s[50],c[50];
gets(s);
for(i=0;s[i]!='\0';i++);
i--;
for(j=i;j>=0;j--)
{
if(s[j]!=' ')
l++;
else
{
k=1;
while(l)
{
c[a]=s[j+k];
a++;
k++;
l--;
}
c[a]=' ';
a++;
}
}
k=1;
while(l)
{
c[a]=s[j+k];
a++;
l--;k++;
}
c[a]='\0';
puts(c);
}