strings.odin 385 B

123456789101112131415161718192021
  1. proc new_string(s: string) -> string {
  2. var c = make([]u8, len(s)+1);
  3. copy(c, []u8(s));
  4. c[len(s)] = 0;
  5. return string(c[0..<len(s)]);
  6. }
  7. proc new_c_string(s: string) -> ^u8 {
  8. var c = make([]u8, len(s)+1);
  9. copy(c, []u8(s));
  10. c[len(s)] = 0;
  11. return &c[0];
  12. }
  13. proc to_odin_string(c: ^u8) -> string {
  14. var len = 0;
  15. for (c+len)^ != 0 {
  16. len++;
  17. }
  18. return string(slice_ptr(c, len));
  19. }