일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Python
- 운영체제
- 자바 기초
- Operating System
- 러스트 프로그래밍 공식 가이드
- 백준
- Database
- 자바 개념
- 알고리즘
- ubuntu
- 파이썬 알고리즘
- data communication
- C
- 파이썬 챌린지
- 데이터베이스
- 백준 러스트
- 자바
- 파이썬
- OS
- Reversing
- 러스트 예제
- Python challenge
- Rust
- 우분투
- java
- 오라클DB
- 데이터 통신
- 오라클
- 파이썬 첼린지
- 러스트
Archives
- Today
- Total
IT’s Portfolio
[Rust] How to study Rust? - "Copycat" (5) 본문
728x90
반응형
단어를 모두 연결, 각 단어의 시작 위치를 단어와 함께 출력하고, 마지막에 총 길이 출력(16진수 사용)
입력 파일
소스 코드
use std::{fs, io::Read, error::Error, process};
fn read_file() -> Result<String, Box<dyn Error>> {
let mut f = fs::File::open("sample.s")?;
let mut buf = String::new();
f.read_to_string(&mut buf)?;
Ok(buf)
}
fn word_position(contents: String) {
let mut text = String::new();
let mut p = 0;
for word in contents.lines() {
println!("{p:02X}: {word}");
text.push_str(word);
p+=word.len();
}
println!("{:02X}", text.len());
}
fn main() {
let contents = read_file().unwrap_or_else(
|err| {
eprintln!("Error!\n{err}");
process::exit(1);
}
);
word_position(contents);
}
결과
00: apple
05: orange
0B: school
11: tomato
17: man
1A
출처
728x90
반응형
'Development Study > Rust' 카테고리의 다른 글
[System] The Elements of Computing System - 1 (1) | 2023.10.31 |
---|---|
[Rust] How to study Rust? - "Copycat" (6) (0) | 2023.09.24 |
[Rust] How to study Rust? - "Copycat" (4) (0) | 2023.09.23 |
[Rust] How to study Rust? - "Copycat" (3) (0) | 2023.08.28 |
[Rust] How to study Rust? - "Copycat" (2) (0) | 2023.08.28 |
Comments