我正在用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/