나는 당신의 질문을 해독했다고 생각합니다. 이 (아래 설명) 도움이되는지 알려주세요 :
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char word[20] ;
int x=0;
cin>>word;
size_t shift=strlen(word); //////
while(word[x] != 0)
{
cout << char(word[x]+shift) ; //////
x++;
}
cout << "\n";
return 0;
}
입력 :
hello
출력 :
설명
mjqqt
: 나는 변경 유일한 선은 사람이 //////
으로 표시됩니다 . 첫 번째 문자는 cstring
(포함 된 헤더 참조)의 strlen
함수를 사용하여 문자열의 길이를 가져옵니다. 자, 두 번째 : 원래 코드에서 실제로는 word[x]
에 아무 것도 추가하지 않았으며 cout
문에 int
에 쓸데없는 캐스트가 있습니다. 당신이 얻을 수있는 것은 문자의 ASCII 코드에 해당하는 숫자뿐입니다. 위의 코드에서 word[x]+shift
의 결과는 char
으로 다시 캐스트되므로 실제 문자가 인쇄됩니다.
경고 : 프로그램을 작동시키는 데 필요한 최소한의 변경 만 수행했음을 유의하십시오. 코드에서 경계/오버플로 검사가 없습니다. char
이 오버플로되면 예상치 못한 일이 발생하며 입력 문자가 알파벳 끝에 가까워 지거나 (단어가 길면 근처가 아닐지라도) 영숫자 출력을받지 못합니다. 이런 경우 코드가 원하는 것을 생각해야합니다. 또한 char[]
대신 std::string
을 사용하십시오 (strlen
대신 length()
멤버 함수 사용). 그리고 어쩌면 전환을 수행하고 특별한 경우 (줄 바꿈 등)를 처리하기 위해 별도의 함수를 작성하는 것이 좋습니다.
첫 번째 문장은 세금 신고보다 혼란스럽고 대규모 해외 사업을 운영합니다. –
더 자세한 정보 또는 더 많은 정리 설명이나 원하는 정보가 필요하십니까? –
함께 번역 해주세요. "릴란"은 한 마디입니다. 'L'은 편지입니다. –