C中的倒装句
我试图找到符合我需要的东西,但没有找到 有人能帮我修复代码,成功地反转一句话(例如从:“我的名字是”到“是我的名字”)。 请不要使用函数和指针C中的倒装句,c,reverse,C,Reverse,我试图找到符合我需要的东西,但没有找到 有人能帮我修复代码,成功地反转一句话(例如从:“我的名字是”到“是我的名字”)。 请不要使用函数和指针 #include <stdio.h> #include <string.h> void main() { int i = 0, j = 0, end, count=0, sumletters=0; char str[1000], strrev[1000]; fgets(str, sizeof(str),
#include <stdio.h>
#include <string.h>
void main() {
int i = 0, j = 0, end, count=0, sumletters=0;
char str[1000], strrev[1000];
fgets(str, sizeof(str), stdin);//get string from user
sumletters = strchr(str, '\0') - str - 1;//find the last characters in string
while (sumletters) {
end = sumletters= strchr(str, '\0') - str - 1;
while (str[sumletters] != ' '){
//find the number letters of the last word and enter to counter
sumletters--;
}
for (i = 0; sumletters!=end; i++, sumletters++) {
//enter every leters from the last word to new string
strrev[i] = str[sumletters + 1];
str[sumletters + 1] = '\0';//dros the leters that already copy
}
}
puts(str);
puts(strrev);
}
#包括
#包括
void main(){
int i=0,j=0,end,count=0,sumletters=0;
char-str[1000],strev[1000];
fgets(str,sizeof(str),stdin);//从用户处获取字符串
sumletters=strchr(str,'\0')-str-1;//查找字符串中的最后一个字符
while(三封信){
end=sumletters=strchr(str,'\0')-str-1;
while(str[sumletters]!=''){
//找到最后一个单词的数字字母并输入计数器
三个字母--;
}
for(i=0;sumletters!=end;i++,sumletters++){
//输入从最后一个单词到新字符串的每个删除项
strrev[i]=str[sumletters+1];
str[sumletters+1]='\0';//删除已复制的删除程序
}
}
put(str);
看跌期权(strev);
}
试着从句尾读你的句子。读到你碰到一个空格。然后将其逐字复制到新字符串中。重复这个
现在,这不是一个代码完成服务,但我给你一个粗略的想法。该代码不完整,因此我建议您自己更加努力
还有一件事 将
fgets
替换为scanf(“%[^\n]s”,…)
fgets
将“我是谁”读为{'w'、'h'、'o'、'a'、'm'、''、'i'、'\n'、'\0'}开始从后面扫描字符串,直到找到一个'
,存储其位置以便下次从该索引开始。现在从这个位置向前移动到,直到找到另一个'
或字符串结束,并继续将字符分配给新的反向数组。重复这些步骤,直到到达原始字符串的开头
char str[] = "This a sample string";
const int l = strlen(str);
char rev[l];
int i = 0, j, k = l-1;
while(i < l) {
j = k; // starting point is k
for(; str[j] != ' ' && j >= 0; j--); // moving j from right to left till ' ' found
k = j-1; j++;
for(; j < l && str[j] != ' '; j++, i++) {
rev[i] = str[j];
}
if(i < l)
rev[i] = ' '; i++;
}
j=7,i=0//j--
j=6,i=0//j--
j=5,i=0,k=j-1//j--
j=6,i=0//j++
str rev
......................
Hello Foo F
^ ^
j i
j=7,i=1//j++,i++
str rev
......................
Hello Foo Fo
^ ^
j i
str rev
......................
Hello Foo Foo
^ ^
j i
str rev
......................
hello Foo Foo
^ ^
j i
j=7,i=2//j++,i++
str rev
......................
Hello Foo Fo
^ ^
j i
str rev
......................
Hello Foo Foo
^ ^
j i
str rev
......................
hello Foo Foo
^ ^
j i
j=8,i=3//j++,i++
str rev
......................
Hello Foo Fo
^ ^
j i
str rev
......................
Hello Foo Foo
^ ^
j i
str rev
......................
hello Foo Foo
^ ^
j i
上述过程将重复,直到i
注意:假设单词用一个
'
字符分隔。C没有指针就像没有轮子的汽车,或者没有互联网连接的堆栈溢出……你有没有想过使用strtok
?嗨。谢谢我几乎成功了,但规则是接受“”和“”(“空间”和“标签”表示感知)。我的代码可以更改吗?(我无法将我的代码发送到这里)}