此的輸出作業參數通過argv的影響,通過該程序
所以對我的項目,我有兩個字符串在一個從那裏合併當兩個字符串有一個模式相結合。 (這非常模糊,所以生病把下面的例子放在下面,我的問題是在我的main函數中使用了argv參數,當程序正在運行時,argv讀取用戶的輸入,所以它就像./program_name -r。 -r對於程序的這一部分來說是這樣的,所以下面顯示的例子會在用戶輸入後被運行,但是我遇到的問題是如果我有任何其他類似-d的字母,程序仍然會運行。不會是一個問題,但我的程序的另一部分需要我有一個不同的運行代碼,所以程序會做一些不同的事情。我認爲我的問題是在我的if語句,但我不明白爲什麼這是行不通的。任何幫助,將不勝感激
輸入:字符串1:ABC
字符串2:123
輸出:A1B2C3
這是我的節目,它符合並給出了正確的輸出
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void merge(char *s1, char *s2, char *output)
{
while (*s1 != '\0' && *s2 != '\0')
{
*output++ = *s1++;
*output++ = *s2++;
}
while (*s1 != '\0')
*output++ = *s1++;
while (*s2 != '\0')
*output++ = *s2++;
*output='\0';
}
int main(int argc , char *argv[])
{
int i;
if(argv[i] = "-r") {
char string1[30];
char string2[30];
printf("Please enter a string of maximum 30 characters: ");
scanf("%s" ,string1);
printf("Please enter a string of maximum 30 characters: ");
scanf("%s" ,string2);
char *output=malloc(strlen(string1)+strlen(string2)+1);
//allocate memory for both strings+1 for null
merge(string1,string2,output);
printf("%s\n",output); }
return 0; }
我正在考慮爲這個程序使用switch語句,但我不知道它是如何完成。這幫助了一大堆。謝謝! – chrisHG