100자이내로 공백없이 입력되는 숫자와 특수문자로된 문자열을 받아 숫자는 특수문자로 특수문자는 숫자로 변환해서 출력하라.
공백이 없기에 cin>>로 받는게 좋다. 공백이 있다면, cin>>은 공백을 문자로 읽지 않기 때문에 getline()을 써야 한다.
#include <iostream>
#include <windows.h>
#include <string>
using namespace std;
int main(){
string a = "1234567890!@#$%^&*()";//입력받은 문자열을 비교해서
string b = "!@#$%^&*()1234567890";//동일한 위치의 문자를 대입한다.
string c;
int i,j;
cin>>c;
for(i=0;i<c.length();i++){
for(j=0;j<a.length();j++){
if(c[i]==a[j])cout<<b[j];
}
}
cout<<endl;
system("PAUSE");
return 0;
}
시행결과
11234@#$!@(^23096%03%1
!!@#$2341296@#)(^5)#5!
Press any key to continue . . .
입력을 char배열로 받을경우
#include <iostream>
#include <windows.h>
#include <string>
#include <cstring>
using namespace std;
int main(){
string a = "1234567890!@#$%^&*()";//입력받은 문자열을 비교해서
string b = "!@#$%^&*()1234567890";//동일한 위치의 문자를 대입한다.
char c[100];
int i=0,j;
while(cin>>c[i])i++;//cin>>c;
for(i=0;i<strlen(c);i++){
for(j=0;j<a.length();j++){
if(c[i]==a[j])cout<<b[j];
}
}
cout<<endl;
system("PAUSE");
return 0;
}
결과
1!@#61&$%019
^Z
!123^!745)!(
Press any key to continue . . .
공백이 없기에 cin>>로 받는게 좋다. 공백이 있다면, cin>>은 공백을 문자로 읽지 않기 때문에 getline()을 써야 한다.
#include <iostream>
#include <windows.h>
#include <string>
using namespace std;
int main(){
string a = "1234567890!@#$%^&*()";//입력받은 문자열을 비교해서
string b = "!@#$%^&*()1234567890";//동일한 위치의 문자를 대입한다.
string c;
int i,j;
cin>>c;
for(i=0;i<c.length();i++){
for(j=0;j<a.length();j++){
if(c[i]==a[j])cout<<b[j];
}
}
cout<<endl;
system("PAUSE");
return 0;
}
시행결과
11234@#$!@(^23096%03%1
!!@#$2341296@#)(^5)#5!
Press any key to continue . . .
입력을 char배열로 받을경우
#include <iostream>
#include <windows.h>
#include <string>
#include <cstring>
using namespace std;
int main(){
string a = "1234567890!@#$%^&*()";//입력받은 문자열을 비교해서
string b = "!@#$%^&*()1234567890";//동일한 위치의 문자를 대입한다.
char c[100];
int i=0,j;
while(cin>>c[i])i++;//cin>>c;
for(i=0;i<strlen(c);i++){
for(j=0;j<a.length();j++){
if(c[i]==a[j])cout<<b[j];
}
}
cout<<endl;
system("PAUSE");
return 0;
}
결과
1!@#61&$%019
^Z
!123^!745)!(
Press any key to continue . . .
댓글
댓글 쓰기