所以我正在比较两个字符串,而我的代码与它应该做的完全相反。我无法切换我的printf语句,因为那样也会出错。如果我输入长度为5的第一个字符串和长度为6的第二个字符串,则表示字符串1比字符串2更大,而正好相反。 这就是我所拥有的:
SEARCH="one"
OCCURRENCE=3
REPLACE="FOUR"
SED_DELIM=$'\001'
SEARCHNEG=$(sed 's/./[^&]*/g' <<< "${SEARCH}")
sed -r "s${SED_DELIM}${SEARCH}((${SEARCHNEG}${SEARCH}){$((${OCCURRENCE}-1))}${SEARCHNEG})\$${SED_DELIM}${REPLACE}\1${SED_DELIM}" <<< "one one two two one one three three one one"
答案 0 :(得分:1)
strcmp不会比较字符串的长度。它比较字符直到找到两个不相同的字符,然后根据字母表中较早的字符串返回一个负数或正数。如果一个字符串用完(“Hello”与“Hell”),则较短的字符串首先出现。如果它们相同则结果为0.
例如,“xyz”&gt; “abcde”因为x来自a。
答案 1 :(得分:0)
Strcmp根据字母顺序比较字符串。 要比较字符串的长度,只需将strcmp()替换为strlen()。