\TeX/
\LaTeX/
" "
中的第一個替換成 ``
" "
中的第二個替換成 ''
while
重複迴圈搭配 gets()
讀取每行輸入,再用 for
逐字元處理
char str[999] = {0};
while(gets(str)){
for(i = 0; i < strlen(str); i++){
...
}
printf("\n");
}
if
濾出雙引號,再用 flag
控制要替換的字元;其餘直接輸出即可
bool flag = true;
...
if(flag && str[i] == '"'){
printf("``");
flag = false;
}
else if(!flag && str[i] == '"'){
printf("''");
flag = true;
}
else{
printf("%c", str[i]);
}
#include<stdio.h>
#include<string.h>
#include<stdbool.h>
int main(){
char str[999] = {0};
bool flag = true;
int i;
while(gets(str)){
for(i = 0; i < strlen(str); i++){
if(flag && str[i] == '"'){
printf("``");
flag = false;
}
else if(!flag && str[i] == '"'){
printf("''");
flag = true;
}
else{
printf("%c", str[i]);
}
}
printf("\n");
}
return 0;
}
for
char chr;
while((chr = getchar()) != EOF){
...
}
#include<stdio.h>
#include<string.h>
#include<stdbool.h>
int main(){
char chr;
bool flag = true;
while((chr = getchar()) != EOF){
if(flag && chr == '"'){
printf("``");
flag = false;
}
else if(!flag && chr == '"'){
printf("''");
flag = true;
}
else{
printf("%c", chr);
}
}
return 0;
}
getline()
逐行讀取,或是 cin.get()