[英]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()
只檢查工作null
的null
結束的字符串。 而在這一點您生成的字符串是沒有null
終止。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.