在这个程序中,我尝试使用 2 个数组来反转字符串: 这里的问题是程序一直将字符“P”写为唯一的输出,我似乎无法弄清楚如何解决这个问题。
#include<stdio.h>
#include<string.h>
#define TAM 256
int get_string(char string[TAM]);
int invert_string(char string[TAM]);
int string_out(char string[TAM]);
int main(){
char string[TAM]={0}; // always initialize a string to be completely zero, or unexpected behaviour may occur
get_string(string);
invert_string(string);
return 0;
}
int get_string(char string[TAM]){
printf("Enter a string: ");
scanf("%s",string);
return 0;
}
int invert_string(char string[TAM]){
char temporary_string[TAM]={0};
int i,j;
for(i=TAM,j=0;i>=0;i--){
if(string[i]== ' '){
continue;
}else{
temporary_string[j] = string[i];
j++;
}
}
printf("debug : temp string is : %s",temporary_string);
return 0;
}
int string_out(char string[TAM]){
printf("%s",string);
return 0;
}
最佳答案
在 invert_string
函数中尝试这段代码:
int i,j;
for(i=strlen(string)-1,j=0;i>=0;i--){ // u can take variable and save length or directly pass length
if(string[i]== ' '){
continue;
}else{
temporary_string[j++] = string[i];
}
}
temporary_string[j] = '\0'; //Make last index NULL
printf("%s",temporary_string);
关于C 编程 - 反转字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27740742/