我正在用c编写一个程序来删除多余的空格,我已经完成了所有的工作,但是当我编译时,输出中想要的字符串不会出现,我想问题出在主函数中,我将向您展示我的代码:

#include <stdio.h>
#include <stdlib.h>


void eliminar_espacios(char oracion[100]) {
int i;
for(i=0;i!='\0';i++) {
    if(oracion[i]==' ' && (oracion[i+1]==' ' || oracion[i+1]=='\0')) {
        oracion[i]=oracion[i+1];
    }
}
 }

int contar_espacios(char oracion[100])
{
    int i,numero_espacios=0;
    for (i=0;oracion[i]!='\0';i++){
        if (oracion[i]==' '&&oracion[i+1]==' '){
            numero_espacios+=1;
        }
    }
    return(numero_espacios);
}


int main(void){
    char frase[100];
    int num_espacios;
    printf("Escribe aqui a frase:");
    gets (frase);
    num_espacios=contar_espacios(frase);
    eliminar_espacios(frase);
    printf("%s\n",frase);
    printf("%d",num_espacios);
    return 0;
}

最佳答案

您的eliminar_espacios函数没有“return”。
还应该使用strcpy或strncopy在“frase2”中保存新字符串,
例如:

strncpy(frase2, eliminar_espacios(frase), sizeof frase2)

关于c - 我在打印字符串时遇到问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33457549/

10-09 15:53