簡體   English   中英

將C中的字符串拆分為單獨的部分

[英]Splitting a string in C into separate parts

我一直在嘗試用C編寫檢測回文的函數。 該程序當前如下所示:

#include <stdio.h>
#include <string.h>

int main()
{
    char palindrome[24]; int palength; int halflength;
    gets(palindrome);
    palength = strlen(palindrome);
    halflength = palength / 2;
    printf("That string is %u characters long.\r\n", palength);
    printf("Half of that is %u.\r\n", halflength);
    return 0;
}

現在,它檢測字符串的長度,並顯示其中一半。 這只是為了確保它按照我的預期工作。 函數的其余部分應該做的(如果可能的話)是從“ halflength”中取一個整數,並使用該整數從字符串的開頭和結尾取走一定數量的字符,並將它們存儲在單獨的字符串中。 從那里,我可以比較其中的字符,如果字符串確實是回文,則可以返回true或false。

TL; DR-是否可以從字符串的開頭和結尾取走一定數量的字符(在這種情況下為整數“ halflength”),並將它們存儲在單獨的變量中。 閱讀以上內容以獲取有關我要執行的操作的更多信息。

PS-我知道不使用gets(),但不想編寫一個函數來截斷fgets()的\\ n。

int len = strlen(palindrome) - 1; // assuming no \n
int half = len << 1;
for (int i=0; i<=half; ++i)
  if(palindrome[i] != palindrome[len-i])
     return false;
return true;

如果您這樣做,該怎么辦?

char *str1="lol",*str2;
str2=strrev(str1);

//如果兩者相同,則實際上是回文;

發現我正在錯誤地處理問題。 我應該怎么做,就是使用向后和向前的指針遍歷字符。 盡管如果您仍然想回答原始問題,它有時還是有用的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM