C 如何反转一个字符数组,然后将反转后的字符数组存储到另一个数组?
我一直在研究这个非常简单的问题。我试图反转一个字符数组,然后使用c语言将这个反转的字符数组存储到另一个数组中。这是我的代码,我想不出我的代码有什么问题。我真的不明白为什么当我试图打印出我的stcp时,屏幕上什么也没有显示,stcp是带有反向字符串的数组。请提供建议,任何帮助都将不胜感激C 如何反转一个字符数组,然后将反转后的字符数组存储到另一个数组?,c,arrays,string,reverse,C,Arrays,String,Reverse,我一直在研究这个非常简单的问题。我试图反转一个字符数组,然后使用c语言将这个反转的字符数组存储到另一个数组中。这是我的代码,我想不出我的代码有什么问题。我真的不明白为什么当我试图打印出我的stcp时,屏幕上什么也没有显示,stcp是带有反向字符串的数组。请提供建议,任何帮助都将不胜感激 #include<stdio.h> int main() { char st[100]; scanf("%s", st); int count = 0; while(
#include<stdio.h>
int main() {
char st[100];
scanf("%s", st);
int count = 0;
while(st[count] != '\0'){
count++;
}
//printf("%s", st);
char stcp[100];
int i, j = 0;
for(i = count-1; i >= 0; i--){
st[i] = stcp[j];
j++;
}
puts(stcp);
return 0;
}
#包括
int main(){
char-st[100];
scanf(“%s”,st);
整数计数=0;
而(st[count]!='\0'){
计数++;
}
//printf(“%s”,st);
char-stcp[100];
int i,j=0;
对于(i=count-1;i>=0;i--){
st[i]=stcp[j];
j++;
}
看跌期权(stcp);
返回0;
}
我想你的意思是
char stcp[100];
int i = count, j = 0;
while ( i != 0 ) stcp[j++] = st[--i];
stcp[j] = '\0';
对于原始代码,则必须在该语句中交换操作数
st[i] = stcp[j];
字符串stcp
必须附加终止零
考虑到main函数应该像C一样定义
int main( void )
至于我,我会将变量count
、I
和j
声明为具有类型size\u t
我想你的意思是
char stcp[100];
int i = count, j = 0;
while ( i != 0 ) stcp[j++] = st[--i];
stcp[j] = '\0';
对于原始代码,则必须在该语句中交换操作数
st[i] = stcp[j];
字符串stcp
必须附加终止零
考虑到main函数应该像C一样定义
int main( void )
至于我,我会将变量count
、I
和j
声明为具有类型size\u t
您需要切换此线路:
st[i] = stcp[j];
为此:
stcp[j] = st[i];
您需要切换此线路:
st[i] = stcp[j];
为此:
stcp[j] = st[i];
如果是C
,那么你不应该把你的问题标记为C++
,因为在C++
中,你所要做的就是调用std::reverse
st[i]=stcp[j]代码>-->stcp[j]=st[i]代码><代码>stcp[j]=0代码>次要:使用size\u t count
比int count
更好,如果是C
,那么你不应该把你的问题标记为C++
,因为在C++
中,你所要做的就是调用std::reverse
st[i]=stcp[j]代码>-->stcp[j]=st[i]代码><代码>stcp[j]=0代码>次要:使用size\u t count
比int count