Распечатать выбранное число строковой задачи - PullRequest
1 голос
/ 12 апреля 2011

В упражнении говорится: «Создайте функцию с двумя параметрами: строку (и) и целое число (n). Затем функция вернет первые n символов. Это то, что я сделал, но я получаю ошибку компилятора»Предупреждение] передача аргумента 1 из Symbolse делает указатель из целого числа без приведения ". Я пытался внести некоторые изменения, чтобы переопределить эту ошибку, но затем я не получил желаемый результат, или программа вылетает.

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

 void symbolse(char s[50],int n){
    int i;
    for(i=0;i<n;i++)
    printf("%c ",s[i]);


 }

main(){
   int m;
   char a[50];
   printf("Give integer: ");
   scanf("%d",&m);
   printf("Give string: ");
   a[50]=getchar();
   symbolse(a[50],m);

   system("pause");


 }

Пример. Пользователь дает m = 3 и a [50] = House. Программа должна вывести Hou.

Ответы [ 4 ]

1 голос
/ 12 апреля 2011

Вы, вероятно, хотите

symbolse(a,m);

вместо

symbolse(a[50],m);

Поскольку вы хотите передать массив (фактически указатель на массив), а не его 51-й (несуществующий) элемент.

(И проблема, на которую указывает aix, также существует, но это не та проблема, которая нарушает компиляцию).

0 голосов
/ 12 апреля 2011

Вы не можете использовать a[50]=getchar();, потому что getchar берет только один символ.

Используйте scanf("%s",a); вместо a[50]=getchar();

0 голосов
/ 12 апреля 2011

Попробуйте это ...

void symbolse(char s[50],int n){

int i;

for(i=0;i<n;i++)

printf("%c ",s[i]);


}

main(){

  int m;

  char a[50];

  printf("Give integer: ");

  scanf("%d",&m);

  printf("Give string: ");

  fgets(a,sizeof(a),strin); /* get chars from stdin */

  symbolse(a,m); /* Call the function giving array's base address */

  system("pause");


}
0 голосов
/ 12 апреля 2011

Одна проблема с a[50]=getchar().Это читает один символ в 50-ю позицию в вашем буфере (что, кстати, выходит за пределы a).Попытка использовать scanf вместо.

symbolse(a[50],m) также неверна.Я дам вам понять, в чем проблема.

Еще один совет - распечатать значения ваших входных переменных, чтобы убедиться, что вы правильно их прочитали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...