簡體   English   中英

在字符串中分別打印偶數個奇數字符

[英]print even odd characters separately in a string

這是我嘗試過的代碼,

我必須從用戶處獲取一個字符串,並作為輸出,我必須在偶數位置和奇數位置打印字符,並用空格隔開

我的問題:在每個測試用例中,我都為結尾處的兩個字符串分配一個空字符,以得出我的字符串已結束的結論。 假設我輸入了2個測試用例,現在如果輸入比第一個測試用例小的字符串,結果是打印我的第二個測試用例的字符,但同時打印測試用例的字符,因為第一個字符串大於第二個字符串

我想問一下,如果在每個測試用例中以空字符結尾的字符串怎么辦?

那么為什么要在空字符之后打印值,因為那是先前測試用例的字符,因為該字符串較大並且其字符仍在數組中,但是它應該打印直到空字符,請幫助我實現這一點。

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

int main() {
   int t,i,j,k;
   scanf("%d ",&t);
   while(t>0){
       char s[10000],s1[10000],s2[100000];
      scanf("%s",s);
       for( i=0,j=0,k=0;i<strlen(s);i++){
           if(i%2==0)
               s1[j++]=s[i];
           else
                s2[k++]=s[i];


       }
       s1[strlen(s1)]='\0';
       s2[strlen(s2)]='\0';
       printf("%s %s\n",s1,s2);
       t--;

   }
}
   s1[strlen(s1)]='\0';
   s2[strlen(s2)]='\0';

這條線是錯誤的。 替換為

   s1[j]='\0';
   s2[k]='\0';

這是因為strlen()只檢查工作nullnull結束的字符串。 而在這一點您生成的字符串是沒有null終止。

暫無
暫無

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

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