输入后替换字符串中的空格?

时间:2015-04-27 16:47:35

标签: c loops linked-list scanf

在下面的代码中,当用户在地址处输入空格时,程序会进入无限循环?

示例:街道,城镇,城市会使程序崩溃,如何用空格替换空格,'?或者至少阻止这种情况发生

printf("\nEnter address:\n");
scanf("%s", newNode->address);
printf("\nEnter department:\n");
scanf("%d", &newNode->depart);
while(validDate == 0){
printf("\nEnter Data Of Join(dd/mm/yy):\n");
if (scanf("%d%*[-/. ]%d%*[-/. ]%d", &newNode->day, &newNode->mounth, &newNode->year) != 3){
    printf("Wrong format! Please enter a date and exclude the slashes! eg. 15 01 95");
}
else{
    // break the loop
    validDate = 1;
}
}// date validation end

1 个答案:

答案 0 :(得分:0)

尝试

gets() 

而不是scanf()。 scanf在遇到空格字符时将停止读取输入。剩下的字符串数据将保留在输入缓冲区中,这可能会导致问题。