2017-02-10 10 views
0
#include <stdio.h> 
#include <string.h> 

int contain(int argc, char* argv[]) 
{ 
int i; 
int j; 
int lenst1; 
int lenst2; 
int pos1; 
int pos2; 

if (lenst2>lenst1) 
{ 
    printf("flase"); 
    return 0; 
} 
for (j=0; j<lenst1;j++) 
{ 
    for (i=0; i<lenst2; i++) 
    { 
     if (st2[i]==st1[j]) 
     { 
      pos1=j; 
      pos2=i; 
      while (pos2<lenst2) 
      { 
       pos2++; 
       pos1++; 
       if (st2[i]==st1[j]) 
       { 

       } 
       else 
       { 
        printf("flase\n"); 
        return 0; 
       } 
       printf("true\n"); 
       return 0; 
      } 
     } 
    } 
} 
} 

Моя цель - написать программу под названием «содержит», которая принимает две текстовые строки в качестве аргументов и печатает «истина», за которой следует новая строка.C -Введите текст как параметр

Если вторая строка полностью содержится внутри первой, или «false», за которой следует новая строка. Я думаю, что моя логика правильная. Мой вопрос в том, как передать эти две строки в качестве параметров.

+1

Хорошее начало было бы на самом деле * есть * две струны. Который у вас нет. И используйте * инициализированные * переменные. Возможно, вам [нужно прочитать хорошую книгу для начинающих] (http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list)? –

ответ

0

Инициализация ваших переменных в главном. Если вы хотите, чтобы он был параметром, тогда напишите логику в некоторой другой функции и вызовите ее, передав две строки в качестве переменных и определите их в основном.

0

Эти два «стандартных» параметра main несут ответственность за это.

  • argc ... количество аргументов командной строки
  • argv ... массив строк с аргументами командной строки.

Таким образом, argv [0] содержит название программы.

В вашем случае:

#include <stdio.h> /* for printf, fprintf */ 
#include <string.h> /* for strlen */ 

int main(int argc, char **argv) 
{ 
    char *str1, *str2; 
    /* check for min. number of required args. */ 
    if (argc <= 2) { 
    fprintf(stderr, "ERROR! At least one arg. missing!\n"); 
    return -1; 
    } 
    /* get args. */ 
    str1 = argv[1]; str2 = argv[2]; 
    /* (the strings are 0-terminated) */ 
    printf("argv[1]: '%s' (length: %d)\n", str1, strlen(str1)); 
    printf("argv[2]: '%s' (length: %d)\n", str2, strlen(str2)); 
    /* process data */ 
    /* done */ 
    return 0; 
} 

компилировать и запускать:

$ gcc -o testArgs ./testArgs.c 

$ ./testArgs 
ERROR! At least one arg. missing! 

$ ./testArgs Hello "Hello world" 
argv[1]: 'Hello' (length: 5) 
argv[2]: 'Hello world' (length: 11) 

Подробнее:

  • команда аргументы командной строки: Google c main argc argv
  • работает с 0-терминированых строк : google c strlen.