pragma solidity ^0.4.18; contract Test { function substring(string str, uint startIndex, uint endIndex) public pure returns (string) { bytes memory strBytes = bytes(str); bytes memory result = new bytes(endIndex-startIndex); for(uint i = startIndex; i < endIndex; i++) { result[i-startIndex] = strBytes[i]; } return string(result); } }
0.4.18