I have some jQuery code where I want to find user’s input length but every time instead of giving user’s input length, it is returning max length defined on the text box. How can I achieve this?
What I want to achieve using jQuery is this:
I want whenever user type 0
, I want to convert it to 000
, but when user type 70
, it is also converting it to 000
, which I want to keep as it is. So I want this to fire only when user input length is less then 1. Input user box has a max length defined in HTML which is 3.
Your input is really appreciated.
Here is my jQuery code:
$(document).ready(function(){
$("input:[id*=txtFairIsaacScore]").keydown(function(event){
if($("input:[id*=chkFairIsaacScoreEdited]").is(":checked")){
//$("input:[id*=txtFairIsaacScore]").unmask();
var cp_value = $("input:id*=txtFairIsaacScore]").val().length;
alert(cp_value);
if(cp_value <= 1){
if ((event.keyCode == 48) || (event.keyCode == 96)){
$("input:[id*=txtFairIsaacScore]").val("000");
}
}
}
});
});
0
Я пытаюсь измерить, сколько цифр у меня есть. если я введите следующую строку: 1 2 65 3 4 7
, я хочу выход быть 8
.Но то, что я получаю 1 2 3 4Как найти длину ввода
#include <stdio.h>
int main(void) {
int data;
int i = 1;
while (i <= sizeof(data)) {
scanf("%d", &data)
printf("%d", i);
i++;
}
}
3
Вы печатаете i
, которые не имеют никакого отношения к входу в все. Итак, вне зависимости от вашего ввода, вы получите 1234
sizeof(data)
такое же, как sizeof(int)
, то есть константа со значением 4 в вашей системе.
Если вы хотите, чтобы подсчитать количество чисел, не заботясь о ценности индивидуального номера, вы можете сделать:
#include <stdio.h>
#include <ctype.h>
int main(void) {
char s[1024];
char* p;
int i = 0;
fgets(s, 1024, stdin);
p=s;
while (*p != '')
{
if (!isdigit(*p))
{
p++;
}
else
{
i++; // Found new number
// Search for a delimiter, i.e. skip all digits
p++;
while (*p != '' && isdigit(*p))
{
p++;
}
}
}
printf("We found %d numbers", i);
return 0;
}
Выход:
We found 6 numbers
Обратите внимание, что этот код будет принимать любой ввод без цифр в качестве разделителя.
1
положил scanf перед циклом while и переместил printf после цикла while.
-1
Я также предоставляю решение согласно моему открытию.
#include <stdio.h>
int main(void) {
int data = 1;
int i = 0;
// here data != 0 is trigger point for end input,
// once you done with your inputs you need to last add 0 to terminate
while (data != 0) {
scanf("%d", &data)
printf("Collected Data: %d", data);
i++;
}
printf("Total number of inputs are %d.", i);
}
Надеюсь, что это решение поможет вам.
-1
Вот мое решение:
#include <stdio.h>
#include <stdlib.h>
int main() {
int i = 0;
int data[100]; // creating an array
while(1) { // the loop will run forever
scanf("%d", &data[i]);
if (data[i] == -1) { //unless data[i] = -1
break; // exit while-loop
}
i++;
}
printf("%dn", data[2]); // print 2nd integer in data[]
return 0;
}
Не забудьте нажать кнопку ввода, как только вы ввели Int. Выход программы:
2
56
894
34
6
12
-1
894
Надеюсь, что это поможет. 🙂
Сообщение от мама Стифлера
Но один фиг перемудрили с кодом по ссылке. Можно было гораздо проще:
И да, и нет – там они удваивают предыдущую длину строки – на мой взгляд зря.
ИМХО. Лучше увеличивать строку на фиксированный размер, например на 4096 байта (страница) на 32битных ОСях, или на 16/256 байт под дос (экономия памяти) – зависит от платформы. К тому же сразу выравняемся по странице.
Вызывать realloc()
на каждый добавленный байт, особенно если читаем из пайпа (выхлоп другой проги) – это жирное расточительство, т.к. realloc()
под капотом несёт malloc()
, memcpy()
, free()
– это ресурсоёмкие функции…
Добавлено через 53 минуты
Вот своё накорябал:
C | ||
|
Конечно вместо strlength()
лучше использовать библиотечную strlen()
– она оптимизирована под целевую платформу (умеет использовать SIMD команды).
Как видно, не намного сложнее Вашей, при этом есть обработка нештатных ситуаций…
В этом примере вы научитесь вычислять длину (размер) строки на C++(как строковых объектов, так и строк в стиле C).
Функции size() и length() – просто синонимы, и обе они делают одно и то же.
#include <iostream> using namespace std; int main() { string str = "C++ Programming"; // you can also use str.length() cout << "String Length = " << str.size(); return 0; }
String Length = 15
Пример: длина строки C-стиля
#include <iostream> #include <cstring> using namespace std; int main() { char str[] = "C++ Programming is awesome"; // you can also use str.length() cout << "String Length = " << strlen(str); return 0; }
String Length = 26
Читайте также
- 👉 Преобразование восьмеричного числа в десятичное и наоборот в C++
- 👉 Преобразование двоичного числа в восьмеричное и наоборот в C++
- 👉 Как перевернуть строку в C++
Вопрос:
Я хочу знать длину одной строки пользовательского ввода в Fortran. Поскольку этот вход может содержать некоторые конечные пробелы, LEN_TRIM не дает правильного ответа.
program test
implicit none
character(len=100) :: s
read(*, '(a)') s
write(*, '(i0)') len_trim(s)
end program test
пример входов и выходов:
вход: Hello World!
выход: 12
ожидаемый результат: 15
вход: (5 пробелов)
вывод: 0
ожидаемый результат: 5
Лучший ответ:
Прочитайте ввод одного символа за раз и подсчитайте число, считанное с STDIN
.
program foo
character(len=100) s
integer i
i = 1
do
read(*,'(A1)',eor=10,advance='no') s(i:i)
i = i + 1
end do
10 print *, i - 1 ! Minus for 'n'
end program foo
TRIM
и LEN_TRIM
прежнему будут избавляться от конечных пробелов. Вы можете проверить это s(i:i) == ' '
а затем установить его на какой-либо печатный символ.
Ответ №1
Поэтому, если я понимаю ваш вопрос, вы хотели бы включить в свой запрос любые конечные пробелы, которые пользователь включил в свой ввод.
Это просто невозможно в форматированном вводе/выводе фортрана со стандартного ввода (с клавиатуры) – я был НЕПРАВИЛЬНО, см. Ответ @evets – это правда (я думаю, сейчас) для продвижения вывода полных строк. Невозможно отличить конечное пространство, включенное пользователем, и пробелы, которые обычно используются слишком, для всех строк Фортрана.
Поэтому, когда len_trim()
подсчитывает длину строки, она отсекает все завершающие пробелы, включая те, которые введены пользователем. То же самое верно для функции trim()
.